2012-07-23 113 views
0

我想根据数据生成这样如何剃刀

@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的单击事件,并显示一些信息添加HTML5数据出头的属性被点击的tr的orderid属性值。

在Visual Studio中,我收到一条验证消息,声明“data_orderid不是tr的有效属性”,并且它在呈现HTML tr时没有属性,而不是事件类。

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

+0

为了让VS 2010验证HTML作为HTML5工具>选项>文本编辑器> HTML>验证和更改目标HTML5 – 2012-07-23 14:31:06

回答

3

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

data-AttributeName=AttributeValue 

实施例:

data-name="John Resig" 

变化underscorehiphen,它会被正确地渲染。

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

其实在ASP.Net MVC剃刀3+你。必须使用_在最后得到a - out,所以应该是data_orderid =“@ item.Id”,但是当他得到它时,他应该使用 - 而不是。http://www.devcurry.com/2011/04/AS pnet-mvc-3-handling-html-5-attributes.html – 2012-07-23 14:16:03

+1

@ShaneCourtrille:HTML Helper方法就是这样。他正在手写纯HTML。 – Shyju 2012-07-23 14:17:19

+1

啊好点。我立场纠正。 – 2012-07-23 14:17:42

0

,首先它是更有可能的是,你应该使用“数据-XXX”(而不是“data_xxx”)的属性。其次,视觉工作室忽略类和“data_orderid”属性是不太可能的(如果不是不可能的话)。

确保for循环会从你的病情@ Model.Where的任何元素(O => o.Status ==“提交”

此外,作为一个音符,剃须刀是足够聪明的解释“的HTML属性“传递给元素,如这里:

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