从 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 没有重载)。

我宁愿不为此创建部分。

编辑:

唔......使用部分实际上还不错。这实际上很有意义。

在这里查看我关于此设计的答案,它可能对这种特定策略有意义

许多模型可供查看,具有许多部分视图

相关内容

  • 没有找到相关文章

最新更新