[英]Remove Prefix from ViewModel in ASP.NET MVC
我有一个由几个嵌套类组成的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
没有帮助。 @Html.EditorFor
的htmlFieldName
重载将无法工作,因为我仍然希望标签和验证消息与呈现的HTML元素匹配(这些函数中的htmlFieldName不重载)。
我宁愿不为此创建局部。
编辑:
嗯...使用局部函数实际上还不错。 实际上,这很有意义。
在这里查看我关于此设计的答案,对于这种特定策略可能有意义
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.