Vorübergehende Ansicht Modell ASP.NET MVC-3-Controller Bearbeiten

Bei der übergabe einer view-Modell (wie unten) zu einer Ansicht, wie kann ich sicherstellen, dass das Kontrollkästchen ich bin erstellen (zugeordnet zu Element "Produkt" hier) übergeben bekommen zurück an den controller?

Habe ich meine Ansicht Modell und "post" Produkt-controller unten.

Leider, wenn gepostet wird zurück an den controller, "Produkte" ist null.

namespace MyProject.Models
{
    public class ChartViewModel
    {
        public Chart ChartItem { get; set; }
        public IEnumerable<Product> Products { get; set; }
    }
}

Controller:

    [Authorize]
    [ValidateInput(false)]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Edit(ChartViewModel objChartViewModel)
    {

        if (!TryUpdateModel(objChartViewModel))
        {
            return View(objChartViewModel);
        }
        else
        {

        } return View("Details", objChartViewModel);

    }

Wie die Markierungsfelder werden Hinzugefügt, um meine Ansicht, zugeordnet, um die "Produkt" - Objekt in meinem view Modell:

@{
   foreach (MyProject.Models.Product objProduct in Model.Products)
 {
            @Html.CheckBox("product" + objProduct.Id, Model.ChartItem.ChartProducts.Select(t => t.ProductId).Contains(objProduct.Id));
            @String.Format("{0} {1}", objProduct.Manufacturer.Name, objProduct.Name);<br />
 }
}

InformationsquelleAutor Nick | 2011-07-11

Schreibe einen Kommentar