[英]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.