2013-07-25 231 views
2

我想在我的ASP.NET MVC 4應用程序的HTML中顯示屬性的顯示名稱。 但是,即使我已經在viewmodel中設置了顯示名稱,仍然會顯示原始變量名稱。爲什麼不顯示顯示名稱?

視圖模型:

public class Manage_ManagePasswordViewModel 
{ 
    [Display(Name="Name")] 
    public string name; 
    [Display(Name = "SubID")] 
    public string subId; 
    [Display(Name = "Conversions")] 
    public int conversions; 
    [Display(Name = "Password")] 
    public string password; 
    public UserProfile owner; 

    public Manage_ManagePasswordViewModel(ProtectedPassword pw) 
    { 
     name = pw.Name; 
     subId = pw.SubId; 
     conversions = pw.GetConversions(); 
     password = pw.Password; 
     owner = pw.Owner; 
    } 
} 

的CSHTML文件:

@model Areas.Admin.Models.ViewModels.Manage_ManagePasswordViewModel 

<div class="editor-label"> 
    @Html.DisplayNameFor(m => m.name): 
    @Html.DisplayTextFor(m => m.name) 
</div> 
<div class="editor-label"> 
    @Html.DisplayNameFor(m => m.password): 
    @Html.DisplayTextFor(m => m.password) 
</div> 
<div class="editor-label"> 
    @Html.DisplayNameFor(m => m.subId): 
    @Html.DisplayTextFor(m => m.subId) 
</div> 
<div class="editor-label"> 
    @Html.DisplayNameFor(m => m.conversions): 
    @Html.DisplayTextFor(m => m.conversions) 
</div> 
<div class="editor-label"> 
    @Html.DisplayNameFor(m => m.owner.UserName): 
    @Html.UserLink(Model.owner.UserName, Model.owner.UserId) 
</div> 
+0

'DisplayName'是使用'LabelFor'(我說得對不對?) – wudzik

+0

@wudzik根據http://stackoverflow.com/a/5243714/1717823,它是。 – KBKarma

+0

'@ Html.LabelFor(m => m.name)'工作嗎? –

回答

1

使用性質的,而不是領域,爲前。

[Display(Name="Name")] 
public string name {get;set;} 
+0

非常感謝,解決了它。介意解釋爲什麼我需要使用屬性? –

+0

也許,這只是常見約定(與MVC中的許多其他功能一樣,例如控制器命名),MVC開發團隊使用這種慣例。稍後對MVC系統使用.net框架反射,很容易檢查屬性並填充綁定模型。但這是我的觀點,我不是MVC內部的大師) – Dmytro