如何在Razor中添加HTML5 data-something属性

时间:2012-07-23 13:51:15

标签: asp.net-mvc-3 razor

我正在尝试生成一个像这样的表

@foreach (var item in @Model.Where(o => o.Status == "Submitted")){
    <tr class="row" data_orderid="@item.Id">
     <td class="description">
        @item.Customer
     </td>
     <td class="description">
        @item.OrderDescription
     </td>
     ...etc...etc

这样我就可以处理每个tr的click事件,并根据被点击的tr的data-orderid属性值显示一些信息。

在Visual Studio中,我收到一条验证消息,说“data_orderid不是tr的有效属性”,当它呈现HTML tr没有属性时,Not class就是该类。

我应该如何添加这样的属性?

2 个答案:

答案 0 :(得分:3)

HTML 5数据属性的格式是这样的

data-AttributeName=AttributeValue

示例:

data-name="John Resig"

underscore更改为hiphen,它将正确呈现。

 <tr class="row" data-orderid="@item.Id">

答案 1 :(得分:0)

首先,您更有可能使用“data-xxx”(而不是“data_xxx”)属性。

其次,视觉工作室不太可能(如果不是不可能的话)省略类和你的“data_orderid”属性。

确保for循环获取条件@ Model.Where中的任何元素(o =&gt; o.Status ==“已提交”

另外,作为一个注释,Razor足够聪明地解释传递给元素的'html属性',如下所示:

@Html.TextBoxFor(m => m.Name, new { @data_orderid = item.id, @class="input-xxlarge" }))