2

我有一个由几个嵌套类组成的 ViewModel 类:

 public class UserAccountViewModel : UserProfileViewModel
    {
        public UserAccountEmailViewModel UserAccountEmail { get; set; }
        public UserAccountLocationViewModel UserAccountLocation { get; set; }
        public UserAccountPasswordViewModel UserAccountPassword { get; set; }
    }

由此呈现的 HTML(注意 model.UserAccountEmail.Email):

<div class="editor-label">
        @Html.LabelFor(model => model.UserAccountEmail.Email)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.UserAccountEmail.Email)
        @Html.ValidationMessageFor(model => model.UserAccountEmail.Email)
    </div>

这是:

name="UserAccountEmail.Email"

我宁愿名字简单Email

改变ViewData.TemplateInfo.HtmlFieldPrefix没有帮助。重载htmlFieldNamein@Html.EditorFor不起作用,因为我仍然希望标签和验证消息与呈现的 HTML 元素匹配(这些函数中没有 htmlFieldName 重载)。

我宁愿不为此创建部分。

编辑:

嗯...使用部分实际上并不算太糟糕。这实际上很有意义。

4

1 回答 1

4

在这里查看我关于这个设计的回答,这可能对这个特定的策略有意义

许多模型以许多局部视图查看

于 2012-05-26T22:55:32.520 回答