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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Senden Sie Ihre Listen (
IEnumerable<T>
) bis auf die anzeigen, aber wenn Sie nicht kommen zurück an den controller. Die einzigen Eigenschaften des ViewModel, werden die Werte mit exakt übereinstimmenden Elemente in der Auflistung forms. So fügen Sie Eigenschaften zu Ihrem ViewModel wieSelectedProductID
.Dadurch wird eine Dropdown-Liste, sendet den ausgewählten Wert zurück an den controller:
Hinweis: die Eigenschaft gesetzt ist
SelectedEmployeeID
aber das kommt von derEmployeeList
.In deinem Fall die Werte, die viele in der Sammlung (nur "aktiviert" Kontrollkästchen geschickt bekommen in einem Beitrag), so dass Sie tun könnten:
wenn Ihr es Ihr geprüft.
sorry für die Unordnung, das war ein wenig in Eile. Finden Sie diese für weitere Informationen:
MVC-3 Formular-post-und anhaltende-Modell-Daten
InformationsquelleAutor Den