【发布时间】:2011-07-11 13:33:50
【问题描述】:
将视图模型(如下所示)传递给视图时,如何确保我正在创建的复选框(此处映射到项目“产品”)被传递回控制器?
我在下面包含了我的视图模型和“发布”产品控制器。
很遗憾,当回传到控制器时,“Products”为空。
namespace MyProject.Models
{
public class ChartViewModel
{
public Chart ChartItem { get; set; }
public IEnumerable<Product> Products { get; set; }
}
}
控制器:
[Authorize]
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(ChartViewModel objChartViewModel)
{
if (!TryUpdateModel(objChartViewModel))
{
return View(objChartViewModel);
}
else
{
} return View("Details", objChartViewModel);
}
复选框如何添加到我的视图中,映射到我的视图模型中的“产品”对象:
@{
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 />
}
}
【问题讨论】: