Asp.Net mvc 2,DropDownListFor和Editor Template。选定的价值不起作用

时间:2010-09-24 17:56:41

标签: asp.net-mvc-2 entity-framework-4 html.dropdownlistfor mvc-editor-templates

我有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>

1 个答案:

答案 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 )%>