Wor*_*rst 6 c# asp.net-mvc razor
我正在使用mvc5与剃刀结合并根据语言动态填充网站文本.例:
@Html.Label(@DDHelper.GetContent("user_name"), htmlAttributes: new { @class = "control-label col-md-3" })
Run Code Online (Sandbox Code Playgroud)
@DDHelper.GetContent("user_name")返回一个字符串,设置为标签文本.什么时候@DDHelper.GetContent("user_name")返回"你好".标签未创建且html源为空.
我知道这是因为@HTML.Label()不允许'.' 这是我的问题的根源,我应该使用,@HTML.LabelFor()但是@HTML.LabelFor()当我只想显示一个字符串时,我该如何使用?
检查@ Html.Label的重载,您正在使用的是:
public static MvcHtmlString Label(this HtmlHelper html,
string expression,
object htmlAttributes)
Run Code Online (Sandbox Code Playgroud)
你想要的是
public static MvcHtmlString Label(this HtmlHelper html,
string expression,
string labelText,
object htmlAttributes)
Run Code Online (Sandbox Code Playgroud)
对HTML label是什么有一个常见的误解.在winforms上,标签是放置一些文本的地方 - 在HTML中不是这种情况.在HTML中,a <label>是允许用户单击您的文本并使焦点/光标指向相应的输入.
标签的完整语法是:
<label for="controlName">caption</label>
Run Code Online (Sandbox Code Playgroud)
上面重载中的'expression'部分是html中的"for"部分 - 它必须指向控件名称.
如果您正在尝试这样做(将标签与控件配对),请尝试:
@Html.Label("user_name",
@DDHelper.GetContent("user_name"),
htmlAttributes: new { @class = "control-label col-md-3" })
Run Code Online (Sandbox Code Playgroud)
您的输入名为"user_name"的位置.这是@Html.LabelFor进来的地方,例如:
@Html.Labelfor(model=>model.UserName,
@DDHelper.GetContent("user_name"),
htmlAttributes: new { @class = "control-label col-md-3" })
Run Code Online (Sandbox Code Playgroud)
所以你不要硬编码字段名称,他们重构.
如果你"只想显示一个字符串"那么你可能不想要一个<label>.如果你只需要一些简单的文本,你不需要@Html任何东西,只需输出翻译:
<div class='control-label col-md-3'>
@DDHelper.GetContent("user_name")
</div>
Run Code Online (Sandbox Code Playgroud)
但是当你使用"控制标签"时,我怀疑你确实想要<label>.
| 归档时间: |
|
| 查看次数: |
2266 次 |
| 最近记录: |