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>
È stato utile?

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 )%>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top