10

当我在剃刀视图中使用以下代码时,它会渲染<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))
4

4 回答 4

23

您正在滥用Html.Label方法。那是为了:

返回一个 HTML 标签元素和 由指定表达式表示的属性的属性名称。

这就是为什么如果您.在第一个参数中有一个点会感到困惑,因为它需要一个属性表达式。

但是,您可以使用第二个重载:

@Html.Label("", String.Format("{0}. someText",1))

或者直接写出 HTML:

<label>@String.Format("{0}. someText", 1)</label>
于 2012-04-19T12:22:18.963 回答
1

您可以避免使用“Html Helper's label”并直接使用 html“label”并放置您想要正确显示的任何内容。它还可以节省一些时间;)

于 2014-05-29T09:00:12.707 回答
0

您使用的语法是错误的,或者我们可以说这不是通过 RAZOR 语法使用属性的方法。您可以使用它,这可能对您有帮助。

**

 @Html.LabelFor(model => model.PropertyName, 
       String.Format("{0}. " + @Model.PropertyName.ToString() + ",1))

**

于 2012-04-19T12:31:25.950 回答
0

我将它用于包含双精度(纬度/经度)的数据表,并看到了同样的问题。感谢您的提示(我不允许发表评论)。

对我来说,问题已经解决了..

@foreach (var cell in item.ItemArray)
{
  <td>
     @Html.Label("",cell.ToString().Trim())
  </td>
 }
于 2016-04-22T21:21:41.370 回答