2012-07-12 103 views
4

我有這樣的:HTML輔助顯示的顯示名稱屬性無標籤

[Display(Name = "Empresa")] 
public string Company{ get; set; } 

在我的aspx我:

<th><%: Html.LabelFor(model => model.Company)%></th> 

這產生:

<th><label for="Company">Empresa</label></th> 

是否有任何html助手擴展只顯示沒有標籤的顯示屬性,只有純文本?我期望的輸出是這樣的:

<th>Empresa</th> 

謝謝!

編輯

我試圖DisplayFor或DisplayTextFor的建議,但他們不是有效的,因爲它們產生:

<th>Amazon</th> 

他們返回屬性的值...我想從名字顯示屬性。

回答

12

後期編輯

在> = MVC4,只需使用@Html.DisplayNameFor

在此之前,

使用自己的助手

public static MvcHtmlString SimpleLabelFor<TModel, TValue>(
    this HtmlHelper<TModel> html, 
    Expression<Func<TModel, TValue>> expression 
) { 
    var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData); 
    string htmlFieldName = ExpressionHelper.GetExpressionText(expression); 
    string resolvedLabelText = metadata.DisplayName ?? metadata.PropertyName ?? htmlFieldName.Split('.').Last(); 
    if (String.IsNullOrEmpty(resolvedLabelText)) 
      return MvcHtmlString.Empty; 

    return MvcHtmlString.Create(resolvedLabelText); 

} 
+0

DisplayFor和DisplayTextFor返回名稱的瓦魯爾足球俱樂部...我想顯示屬性的值 – Pedre 2012-07-12 08:30:14

+0

@Pedre哦對,我一直都很笨。見編輯;) – 2012-07-12 08:40:16

+0

完美。這是我需要的。非常感謝:) – Pedre 2012-07-12 08:43:34