我有一个由几个嵌套类组成的 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
没有帮助。重载htmlFieldName
in@Html.EditorFor
不起作用,因为我仍然希望标签和验证消息与呈现的 HTML 元素匹配(这些函数中没有 htmlFieldName 重载)。
我宁愿不为此创建部分。
编辑:
嗯...使用部分实际上并不算太糟糕。这实际上很有意义。