Question

J'ai 2 vues. ProductForm.aspx et Category.ascx. CategoryForm est une vue partielle. J'appelle le Category.ascx du ProductForm avec EditorFor (modèle => model.Category). Dans cette vue partielle, il y a un DropdownlistFor avec toute la catégorie. Le problème est la valeur sélectionnée pour une catégorie de produits spécifique. Le travail de valeur doesnt sélectionnée.

Pourquoi?


Voici ce que j'ai dans mon ProductForm

<div class="editor">      
    <div class="editor-label">
        <%: Html.LabelFor(model => model.ProductInfo.ProductName) %>
    </div>

    <div class="editor-field">
        <%: Html.TextBoxFor(model => model.ProductInfo.ProductName)%>
        <%: Html.ValidationMessageFor(model => model.ProductInfo.ProductName)%>
    </div>
</div>
<%: Html.EditorFor(model => model.ProductInfo.Category, new { CategoryList = Model.CategoryList })%>


en Category.ascx

<div class="editor-field">
   <%:Html.DropDownListFor(model => model.CategoryID, (IEnumerable<SelectListItem>)ViewData["CategoryList"])%>
</div>
Était-ce utile?

La solution

Vous pouvez attribuer l'attribut nom de votre LDD à tout ce que votre CategoryID / clé étrangère est appelée dans votre table Produits. Ensuite, votre DDL sélectionnera automatiquement cette catégorie, en raison de la façon dont fonctionne la liaison par défaut.

Un exemple:

<%: Html.DropDownList("Book.GenreID" , Model.GenresSelectList )%>

et le résultat html:

<select id="Book_GenreID" name="Book.GenreID">
<option value="2">Horror</option>
<option selected="selected" value="3">Literature</option>
<option value="1">Science Fiction</option>
</select>

ou

<%: Html.DropDownListFor(model => model.Book.GenreID, Model.GenresSelectList )%>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top