【问题标题】:Can you use nested view models in ASP.net MVC3?您可以在 ASP.net MVC3 中使用嵌套视图模型吗?
【发布时间】:2011-12-07 15:11:20
【问题描述】:

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

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

我遇到的问题是,虽然我可以将 AddressViewModel 传递给部分并呈现地址,但我现在在 HTML 中有重复的 id ......所以现在表单上有三个“Line1”输入字段,当然不要正确回帖。

我该如何解决这个问题。是真正扁平化 ViewModel 并拥有的唯一方法,

MainAddressLine1 邮件地址线路 1 BillAddressLine1

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

【问题讨论】:

    标签: asp.net-mvc-3 viewmodel


    【解决方案1】:

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

    @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>
    }
    

    然后在~/Views/Shared/EditorTemplates/AddressViewModel.cshtml

    @model AddressViewModel
    @Html.EditorFor(x => x.Street)
    @Html.EditorFor(x => x.ZipCode)
    ...
    

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

    【讨论】:

    • 不错。我会试一试,我希望它会起作用,我会将其标记为答案。 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 2019-01-08
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多