首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以告诉MVC自动将使用pascal大小写的属性分成单词吗?

我可以告诉MVC自动将使用pascal大小写的属性分成单词吗?
EN

Stack Overflow用户
提问于 2017-04-15 01:52:12
回答 1查看 208关注 0票数 5

我经常有这样的C#代码

代码语言:javascript
复制
    [DisplayName("Number of Questions")]
    public int NumberOfQuestions { get; set; }

其中,我使用DisplayName属性在显示时添加空格。如果没有显式地提供DisplayName注解,是否有一个选项告诉MVC在缺省情况下添加空格?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-02-27 18:22:44

有两种方法。

1.覆盖LabelFor并创建自定义HTML helper:

自定义HTML帮助器的

  • 实用程序类:

公有类CustomHTMLHelperUtilities { //获取属性名称的方法内部静态字符串PropertyName(Expression>表达式){ switch (expression.Body.NodeType) { case ExpressionType.MemberAccess: var memberExpression = expression.Body as MemberExpression;return memberExpression.Member.Name;默认值: return string.Empty;}} //分割camel盒内部静态字符串输出( string camelCaseString)的方法{ string SplitCamelCase= System.Text.RegularExpressions.Regex.Replace( camelCaseString,"(A-Z)",“$1",RegexOptions.Compiled).Trim();return output;}}

  • 自定义帮助器:

公共静态类{ CustomHTMLHelperUtilities.PropertyName(expression);静态类LabelForCamelCase(this HtmlHelper helper,Expression> expression,object htmlAttributes = null) { string propertyName =Expression

  • 在CSHTML中的使用:

颜色新{style=“@Html.LabelForCamelCase(m=>m.YourPropertyName,:red”})

您的标签将显示为'Your Property Name'

2.使用资源文件:

代码语言:javascript
复制
[Display(Name = "PropertyKeyAsperResourceFile", ResourceType = typeof(ResourceFileName))]
public string myProperty { get; set; }

我更喜欢第一种解决方案。因为资源文件打算在项目中扮演单独的和保留的角色。此外,自定义HTML帮助器可以在创建后重用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43416656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档