我有2个观点。 ProductForm.aspx和Category.ascx。 CategoryForm是部分视图。我使用EditorFor(model => model.Category)从ProductForm调用Category.ascx。在这个局部视图中,有一个包含所有类别的DropdownlistFor。问题是特定产品类别的选定值。选定的值不起作用。
为什么?
以下是我在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 })%>
在Category.ascx中
<div class="editor-field">
<%:Html.DropDownListFor(model => model.CategoryID, (IEnumerable<SelectListItem>)ViewData["CategoryList"])%>
</div>
答案 0 :(得分:3)
您可以将DDL的name属性分配给Products表中调用的CategoryID /外键。然后,由于默认绑定的工作原理,您的DDL将自动选择该类别。
一个例子:
<%: Html.DropDownList("Book.GenreID" , Model.GenresSelectList )%>
以及由此产生的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>
或:
<%: Html.DropDownListFor(model => model.Book.GenreID, Model.GenresSelectList )%>