檢索模型中項目的顯示名稱屬性的最佳方法是什麼?我看到很多人使用LabelFor幫助程序來處理所有事情,但如果我只想列出數據,標籤就不合適。是否有一種簡單的方法,只需要打印出名稱屬性,比如說一段文字?獲取DisplayName屬性,而無需在asp.net中使用LabelFor Helper MVC
62
A
回答
109
<p>
<%= Html.Encode(
ModelMetadata.FromLambdaExpression<YourViewModel, string>(
x => x.SomeProperty, ViewData).DisplayName
) %>
<p>
顯然,以避免意大利麪條代碼,它始終是一個好主意,寫一個幫手:
public static class HtmlExtensions
{
public static MvcHtmlString GetDisplayName<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression
)
{
var metaData = ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, htmlHelper.ViewData);
string value = metaData.DisplayName ?? (metaData.PropertyName ?? ExpressionHelper.GetExpressionText(expression));
return MvcHtmlString.Create(value);
}
}
然後:
<p>
<%: Html.GetDisplayName(x => x.SomeProperty) %>
</p>
1
在我看來,你應該使用字符串作爲結果類型,否則會跳過編碼機制。另一點是,在某些情況下需要將DisplayName作爲字符串(即填充WebGrid類中的列)。
71
你應該嘗試新的現有函數:
<% Html.DisplayNameFor(m => m.YourProperty) %>
+3
Razor:@ Html.DisplayNameFor(model => model.SomeProperty) – 2015-11-04 07:12:00
+0
Much比接受的答案簡單。 – VDWWD 2017-11-14 20:07:49
相關問題
- 1. Asp.net MVC2 LabelFor和DisplayName的從丙
- 2. 無法獲取類的屬性(ASP.NET MVC)
- 3. 獲取DisplayName屬性的所有值
- 4. 奇怪,爲什麼displayName屬性爲LabelFor忽略上覆蓋的屬性今天
- 5. CakePHP中是否有像ASP.NET MVC中的DisplayName屬性?
- 6. ASP.NET MVC列表視圖中的DisplayName屬性
- 7. 無法在MVC3 HTML Helper中獲取自定義屬性值
- 8. 使用泛型獲取屬性DisplayName表單資源類型
- 9. 可以在不使用MVC的情況下訪問DisplayName屬性?
- 10. 在Active Directory中使用DisplayName獲取SamAccountname
- 11. ASP.NET MVC中的UpdatePanelAnimation helper mvc
- 12. 在Asp.net中從FormCollection獲取屬性值MVC
- 13. Ember.js使用{{render}} helper從模板中獲取屬性
- 14. asp.net mvc list helper
- 15. 如何使用DisplayName屬性和/或LabelFor在表單標籤內呈現HTML鏈接?
- 16. DisplayName文本通過LabelFor沒有編碼
- 17. 如何在MVC中使用LabelFor 3
- 18. 爲什麼要在MVC中使用LabelFor?
- 19. asp.net mvc LabelFor。錯誤在使用數組中的名稱
- 20. 在ASP.NET 5/asp.net中替換@helper mvc 6
- 21. 從數據庫中獲取數據而無需在asp.net中回傳mvc
- 22. 如何爲LabelFor helper添加一個asterix?
- 23. mvc DisplayName或Display(Name = ...)取決於另一個模型屬性
- 24. 無需使用參數從asp.net mvc動作獲取模型
- 25. 在asp.net中動態添加DisplayName屬性mvc4
- 26. 在ViewEngine中獲取屬性值ASP.NET MVC 3
- 27. 使用Criteria API獲取所需屬性?
- 28. 無法在asp.net vnext類庫中使用必需屬性
- 29. 在使用ASP.NET MVC的App_code文件夾中使用razor @helper 3
- 30. 在MVC中重新使用ProviderUserKey而無需DB提取
謝謝,這正是我加上更多之後我! – 2010-10-08 15:24:37
請注意,您需要使用以下'using's:using System.Linq;使用System.Linq.Expressions的 ; – 2010-11-04 11:31:24
這樣做的性能影響是什麼?我喜歡在所有視圖中使用它的想法,但它聽起來比僅僅擁有.cshtml – Farinha 2011-05-01 16:48:25