Asp.Net MVC 2, DropDownListFor и редактор шаблонов.Выбранное значение не работает - PullRequest
1 голос
/ 24 сентября 2010

У меня 2 просмотра.ProductForm.aspx и Category.ascx.CategoryForm - это частичное представление.Я вызываю Category.ascx из ProductForm с EditorFor (model => model.Category).В этом частичном представлении есть 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 Ответ

3 голосов
/ 24 сентября 2010

Вы можете назначить атрибут имени вашего DDL для того, чтобы ваш 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 )%>
...