我在add.cshtml中有表单。 我正在使用razor和@ Html.EditFor()帮助器。
我的viewModel:
public class MerchantViewModel {
// properties
public IEnumerable<AddBrandViewModel> Brands { get; set; }
}
public class AddBrandViewModel {
public string Name { get; set; }
public string Url { get; set; }
public string Logo { get; set; }
public AddressViewModel Address { get; set; }
}
现在在View中我想通过ajax创建AddMerchantViewModel和sens到我的WebAPI。
我正在使用.cshtml页面和@ Html.EditFor帮助器。 所以Brands是AddBrandViewModel的集合。
我需要在MODAL中显示EditFor(brand =&gt;品牌)//属性。 在填充模态之后,我想在我的表单中将这些数据添加到UL。 我如何在Modal中显示EditFor(品牌)。
答案 0 :(得分:0)
我喜欢通过foreach
循环来解决这个问题。
这里的技巧是放置一个名称,就像它是一个数组。
示例:
<div>
@{
int idx = 0;
}
@foreach (var brand in Model.Brands)
{
@Html.TextBox("Brands[" + idx + "].Name", brand.Name);
@Html.TextBox("Brands[" + idx + "].Url", brand.Url);
@Html.TextBox("Brands[" + idx + "].Address.PostCode", brand.Address.PostCode);
@Html.TextBox("Brands[" + idx + "].Address.Locality", brand.Address.Locality);
idx++;
}
</div>
这样您就可以像数组一样发送要绑定的属性。
PS:所有项目都必须按顺序排列,idx之间不得有任何跳转,例如[1, 3, 4, 5]
,在这种情况下,它只会传递给[1]