当我在剃刀视图中使用以下代码时,它会呈现<label for=""> someText</label>
而不是<label for="">1. someText</label>
,但我无法弄清楚为什么在呈现时删除了1.
。
@Html.Label(String.Format("{0}. someText",1))
编辑:
以下代码按预期呈现<label for="">1# someText</label>
。
@Html.Label(String.Format("{0}# someText",1))
答案 0 :(得分:21)
您滥用Html.Label方法。这是为了:
返回HTML标签元素和属性的属性名称 由指定的表达式表示。
这就是为什么如果你在第一个参数中有一个点.
就会感到困惑,因为它需要一个属性表达式。
但是,您可以使用第二个重载:
@Html.Label("", String.Format("{0}. someText",1))
或者只写出HTML:
<label>@String.Format("{0}. someText", 1)</label>
答案 1 :(得分:1)
您可以避免使用&#34; Html Helper的标签&#34;并直接使用html&#34; label&#34;放置任何你想要正确显示的东西。它还可以节省一些时间;)
答案 2 :(得分:0)
您使用的语法是错误的或我们可以说这不是使用RAZOR语法属性的方法。 你可以用它来帮助你。
**
@Html.LabelFor(model => model.PropertyName,
String.Format("{0}. " + @Model.PropertyName.ToString() + ",1))
**
答案 3 :(得分:0)
我正在将它用于包含double(Lat / Long)的数据表,并且看到了同样的问题。感谢您的提示(我不允许发表评论)。
对我来说,问题已经解决了。
@foreach (var cell in item.ItemArray)
{
<td>
@Html.Label("",cell.ToString().Trim())
</td>
}