Ich weiß nicht, warum mein Modell nicht korrekt an eine Drop-down-Liste bindet, ich habe das an einigen anderen Stellen erfolgreich gemacht, aber es gibt keinen Erfolg. Dies ist für einen Einkaufswagen, wollen nur eine Menge Dropdown-Liste, die den Warenkorb aktualisiert, und zeigen Sie die aktuelle Menge aus der Datenbank.MVC5 Model Binding to DropDownList
Modell:
public class CartViewModel
{
public List<CategoryModel> Categories { get; set; }
public CartModel Cart { get; set; }
public IEnumerable<SelectListItem> Quantities { get; set; }
}
public class CartModel
{
public List<CartItem> Items { get; set; }
}
public class CartItem
{
public int ProductId { get; set; }
public string Name { get; set; }
public int Quantity { get; set; }
public float Price { get; set; }
public float TotalPrice { get; set; }
public string ImageName { get; set; }
}
Klasse für Mengen, 0-10
public class QuantityList
{
public static IEnumerable<SelectListItem> QtyList = new List<SelectListItem>()
{
new SelectListItem() {Text="0", Value="0" },
new SelectListItem() {Text="1", Value="1" },
new SelectListItem() {Text="2", Value="2" },
new SelectListItem() {Text="3", Value="3" },
new SelectListItem() {Text="4", Value="4" },
new SelectListItem() {Text="5", Value="5" },
new SelectListItem() {Text="6", Value="6" },
new SelectListItem() {Text="7", Value="7" },
new SelectListItem() {Text="8", Value="8" },
new SelectListItem() {Text="9", Value="9" },
new SelectListItem() {Text="10", Value="10" }
};
}
Ansicht
@using (Html.BeginForm("UpdateCart", "Cart", FormMethod.Post))
{
for (int i = 0; i < Model.Cart.Items.Count; i++)
{
<div class="CartItem">
<span class="ItemName">@Model.Cart.Items[i].Name</span>
**<span class="ItemQty">@Html.DropDownListFor(m => Model.Cart.Items[i].Quantity, Model.Quantities)</span>**
<span class="RemoveItem">@Html.ActionLink("Remove", "RemoveItem", new { ProductId = Model.Cart.Items[i].ProductId })</span>
</div>
}
}
aller Last und macht richtig, mit Ausnahme des Dropdownlist, habe ich auch verwendet eine TextBoxFor und es wird korrekt mit den richtigen Werten gerendert, aber nicht beim Versuch, an die vorbelegte Liste von zu binden selectlistitems
ich das versucht hatte, bevor es an das Ansichtsmodell und Einstellen funktionierte nicht richtig, Stephens Antwort funktionierte wie beabsichtigt. danke für Ihre Hilfe –