Pregunta

Tengo 2 vistas. ProductForm.aspx y Category.ascx. CategoryForm es una vista parcial. Debo llamar a la Category.ascx del ProductForm con EditorFor (modelo => model.Category). En esta vista parcial, hay un DropdownlistFor con toda la categoría. El problema es el valor seleccionado para una categoría específica del producto. El trabajo valor dosen't seleccionado.

¿Por qué?


Aquí es lo que tengo en mi 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>
¿Fue útil?

Solución

Se puede asignar el atributo de nombre de su DDL para cualquiera que sea su clave CategoryID / extranjera se llama en su tabla productos. Luego, su DDL seleccionará automáticamente esa categoría, debido a la forma predeterminada obras vinculante.

Un ejemplo:

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

y el código HTML resultante:

<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 )%>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top