viewmodel中的ASP.NET MVC,jQuery,模态和复杂类型列表。

时间:2016-06-17 14:19:39

标签: c# jquery

我在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(品牌)。

1 个答案:

答案 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]