簡體   English   中英

在ASP.NET MVC中從ViewModel刪除前綴

[英]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.EditorForhtmlFieldName重載將無法工作,因為我仍然希望標簽和驗證消息與呈現的HTML元素匹配(這些函數中的htmlFieldName不重載)。

我寧願不為此創建局部。

編輯:

嗯...使用局部函數實際上還不錯。 實際上,這很有意義。

在這里查看我關於此設計的答案,對於這種特定策略可能有意義

要查看的許多模型具有很多局部視圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM