gpt4 book ai didi

c# - Razor 标签圆点时期

转载 作者:太空狗 更新时间:2023-10-29 21:17:09 24 4
gpt4 key购买 nike

我将 mvc5 与 razor 结合使用,并根据语言动态填充网站文本。示例:

@Html.Label(@DDHelper.GetContent("user_name"), htmlAttributes: new { @class = "control-label col-md-3" })

@DDHelper.GetContent("user_name") 返回一个字符串,设置为标签文本。当 @DDHelper.GetContent("user_name") 返回“Hello”时。标签未创建且 html 源为空。

我知道这是因为 @HTML.Label() 不允许 '.'这就是我的问题的根源,我应该使用 @HTML.LabelFor() 但是当我只想显示一个时如何使用 @HTML.LabelFor()字符串?

最佳答案

检查@Html.Label 的重载,您正在使用的是:

public static MvcHtmlString Label(this HtmlHelper html, 
string expression,
object htmlAttributes)

你要的是

public static MvcHtmlString Label(this HtmlHelper html, 
string expression,
string labelText,
object htmlAttributes)

对于什么是 HTML label 有一个普遍的误解是。在 winforms 上,标签是你放置一些文本的地方——在 HTML 中不是这样。在 HTML 中为 <label>是允许用户单击您的文本并将焦点/光标指向相应的输入。

标签的完整语法是:

<label for="controlName">caption</label>

上面重载中的“表达式”部分是 html 中的“for”部分 - 它必须指向控件名称。

如果这就是您想要做的(将标签与控件配对),那么请尝试:

@Html.Label("user_name", 
@DDHelper.GetContent("user_name"),
htmlAttributes: new { @class = "control-label col-md-3" })

您输入的名称为“user_name”。这是@Html.LabelFor的地方进来,像这样:

@Html.Labelfor(model=>model.UserName, 
@DDHelper.GetContent("user_name"),
htmlAttributes: new { @class = "control-label col-md-3" })

因此您无需对字段名称进行硬编码,它们会进行重构。

如果您“只想显示一个字符串”,那么您可能不需要 <label> .如果您只需要一些简单的文本,则不需要 @Html 任何东西,只需输出翻译即可:

<div class='control-label col-md-3'>
@DDHelper.GetContent("user_name")
</div>

但是当您使用“控制标签”时,我怀疑您确实想要 <label> .

关于c# - Razor 标签圆点时期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com