【问题标题】:I want to force uppercase on Html.LabelFor in MVC razor?我想在 MVC 剃须刀中强制 Html.LabelFor 大写?
【发布时间】:2014-01-09 07:02:46
【问题描述】:

我使用 MVC Razor 作为我的视图引擎。我想在Html.LabelFor 上强制大写我尝试了以下技术但对我不起作用!!

请帮我一个!

@Html.LabelFor(model => model.YearID.ToString ().ToUpper())

以上代码给出以下错误: 模板只能用于字段访问、属性访问、单维数组索引或单参数自定义索引器表达式。

 @Html.LabelFor(model => model.YearID).ToString().ToUpper()

上面的代码可以正常工作,但与 html 代码一起显示如下:

<LABEL FOR="STUDENTENROLLPLANS_SCHOOLYEARID">您在哪个学年注册?</LABEL>

【问题讨论】:

  • 检查我的答案,它有效

标签: asp.net-mvc razorengine


【解决方案1】:

您可以将DisplayAttribute 添加到YearID 属性并为其指定一个大写的名称

[Display(Name = "WHICH SCHOOL YEAR ARE YOUR ENROLLING FOR?")]
public int YearID { get; set; }

在这种情况下,YearID 的每个标签都是大写的。如果您只需要特定标签,请创建一个 CSS 类并将其应用于标签:

.uppercase {
    text-transform: uppercase;
}

@Html.LabelFor(model => model.YearID , new { @class = "uppercase"})

【讨论】:

    【解决方案2】:

    @Html.Encode(item.Employee_Name).ToUpper() 这是我的程序中的工作。我可以通过此代码将所有字母显示为大写

    【讨论】:

    • 这并没有解决问题。问题在于结合 ToString 方法和 LabelFor 属性。
    【解决方案3】:

    如果@Html.LabelFor() 是您唯一要寻找的东西,那么这应该适合您!

    @Html.LabelFor(model => model.YearID, Html.DisplayNameFor(model => model.YearID).ToString().ToUpper())
    

    显示文本过载。您可以输入纯文本或使用帮助程序。
    生成的 HTML

    <label for="YearID">WHICH SCHOOL YEAR ARE YOUR ENROLLING FOR?</label>
    

    【讨论】:

    • 这确实可以强制大写但也使文本变粗..?
    • @Jay 因为它会生成一个label 标签。确保没有与之关联的 CSS 样式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    相关资源
    最近更新 更多