你能在ASP.net MVC3中使用嵌套视图模型吗?

Pil*_*Bob 4 viewmodel asp.net-mvc-3

这是我正在做的简化版本.

我创建了一个包含公司数据的视图模型.该公司有3个地址.因此,为了聪明,我创建了一个AddressViewModel和一个_address部分.

我遇到的问题是,虽然我可以将AddressViewModel传递给partial,但它呈现的地址我现在在HTML中有重复的ID ...所以现在表单上有三个"Line1"输入字段,当然不会回复正确.

我该如何解决这个问题.是真正展平ViewModel的唯一方法,

MainAddressLine1 MailAddressLine1 BillAddressLine1

在公司视图模型?而且,如果我这样做,我还能以某种方式使用_address部分吗?

Dar*_*rov 7

使用编辑器模板而不是部分模板:

@model MainViewModel
@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.MainAddress)
    @Html.EditorFor(x => x.MailAddress)
    @Html.EditorFor(x => x.BillAddress)

    <button type="submit">OK</button>
}
Run Code Online (Sandbox Code Playgroud)

然后在里面~/Views/Shared/EditorTemplates/AddressViewModel.cshtml:

@model AddressViewModel
@Html.EditorFor(x => x.Street)
@Html.EditorFor(x => x.ZipCode)
...
Run Code Online (Sandbox Code Playgroud)

现在您不必担心输入字段的名称和ID.他们将得到正确处理.