我有一个ProductViewModel,其中每个产品都有多个图像,Bullet_Points。我能够显示要编辑的数据函数但是将数据捕获回POST编辑方法几乎没有逻辑。
@model OMS.ViewModels.ProductVm2
@using(Html.BeginForm()) {
@Html.AntiForgeryToken() < h4 > ProductVM < /h4> < hr / >
< div class = "form-horizontal" >
@Html.HiddenFor(m => m.Product.ProductID)
@foreach (var img in Model.Images)
{
<div class="form-group">
@Html.LabelFor(modelItem => img.Image_URL, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(modelItem => img.Image_URL, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(@modelItem => img.Image_URL, "", new { @class = "text-danger" })
</div>
</div>
}
如何将图像集合捕获到控制器[HTTPPOST]编辑方法。因为方法应该迭代图像模型。我能够在没有问题的情况下捕获其他模型数据。
public ActionResult Edit(FormCollection form, ProductVm2 VM) {
Product product = new Product() { //Supplier_ID = VM.Product.Supplier_ID,
Name = VM.Product.Name, Description = VM.Product.Description, Product_Code = VM.Product.Product_Code,
ProductID = VM.Product.ProductID
};
//Images
List<Image> Images = new List<Image>();
Images.Add( ......)
}
此外,当我试图检查从View发送到Controller的对象时。即使我已将数据传入其中,我也看到Image对象为空。
答案 0 :(得分:0)
你不能真正使用foreach并且有这个工作,默认模型绑定器想要集合索引语法正确地创建可绑定元素ids .....
而不是
$ionicHistory.forwardView()
使用此
@foreach (var img in Model.Images)
{
<div class="form-group">
@Html.LabelFor(modelItem => img.Image_URL, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(modelItem => img.Image_URL, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(@modelItem => img.Image_URL, "", new { @class = "text-danger" })
</div>
</div>
}