Asp.Net MVC 2, DropDownListFor e editor di modelli. Selezionata lavoro dosen't Valore
Domanda
Ho 2 viste. ProductForm.aspx e Category.ascx. CategoryForm è una vista parziale. Io chiamo i Category.ascx dal ProductForm con EditorFor (modello => model.Category). In questa vista parziale, c'è un DropdownlistFor con tutta la categoria. Il problema è il valore selezionato per una categoria specifica del prodotto. Il selezionato lavori valore dosen't.
Perché?
Ecco quello che ho nel mio 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 })%>
in Category.ascx
<div class="editor-field">
<%:Html.DropDownListFor(model => model.CategoryID, (IEnumerable<SelectListItem>)ViewData["CategoryList"])%>
</div>
Soluzione
È possibile assegnare l'attributo nome del DDL a tutto ciò che la vostra chiave IDCategoria / straniero è chiamato nella tabella prodotti. Allora la vostra DDL selezionerà automaticamente quella categoria, a causa di come vincolante opere di default.
Un esempio:
<%: Html.DropDownList("Book.GenreID" , Model.GenresSelectList )%>
e la conseguente 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>
o
<%: Html.DropDownListFor(model => model.Book.GenreID, Model.GenresSelectList )%>