检索模型中项目的显示名称属性的最佳方法是什么?我看到很多人使用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. ASP.NET MVC列表视图中的DisplayName属性
- 6. 在Asp.net中从FormCollection获取属性值MVC
- 7. ASP.NET MVC中的UpdatePanelAnimation helper mvc
- 8. asp.net mvc list helper
- 9. 如何使用DisplayName属性和/或LabelFor在表单标签内呈现HTML链接?
- 10. DisplayName文本通过LabelFor没有编码
- 11. asp.net mvc LabelFor。错误在使用数组中的名称
- 12. 在MVC中重新使用ProviderUserKey而无需DB提取
- 13. 无法在asp.net vnext类库中使用必需属性
- 14. 在使用ASP.NET MVC的App_code文件夹中使用razor @helper 3
- 15. 更改属性的DisplayName属性
- 16. 在ASP.Net中截断模型属性MVC
- 17. 在Asp.Net中获取设置属性
- 18. 如何避免访问属性,而无需使用反射
- 19. 本地化DisplayName属性
- 20. 在ASP.net中使用benchmarkdotnet获取性能结果MVC
- 21. 获取HTTP错误,而使用uploadify在Asp.net MVC应用程序
- 22. ASP.NET MVC从视图中引用Html Helper
- 23. spring mvc use model.addAttribute(nav)无法在jsp中使用$ {nav.id}获取父类的属性
- 24. Asp.Net MVC 2 LabelFor自定义文本
- 25. 在Asp.Net中的项目之间共享声明性html helper MVC
- 26. 在ASP.NET MVC中使用属性实现对象级安全性
- 27. 使用LINQ asp.net获取表中属性的最后一个值mvc
- 28. 从ASP.Net中的“Details”视图获取模型属性MVC
- 29. asp.net mvc 3 T4 View模板访问属性元数据(DisplayName,Description,UIHint)等
- 30. 在硒中使用xpath获取属性
谢谢,这正是我加上更多之后我! – 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