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 のクリック イベントを処理し、クリックされた tr の data-orderid 属性値に基づいて情報を表示できるようにします。

Visual Studio では、「data_orderid は tr の有効な属性ではありません」という検証メッセージが表示され、HTML をレンダリングするときに tr には属性がなく、クラスのイベントではありません。

このような属性を追加するにはどうすればよいですか?

4

2 に答える 2

3

HTML5のデータ属性のフォーマットはこんな感じ

data-AttributeName=AttributeValue

例 :

data-name="John Resig"

a に変更underscoreするhiphenと、正しくレンダリングされます。

 <tr class="row" data-orderid="@item.Id">
于 2012-07-23T13:54:23.750 に答える
0

まず第一に、(「data_xxx」ではなく)「data-xxx」属性を使用する可能性が高くなります。

第二に、ビジュアルスタジオがクラスと「data_orderid」属性を省略することはほとんどありません(不可能ではないにしても)。

for ループが条件から要素を取得することを確認してください @Model.Where(o => o.Status == "Submitted"

さらに、注意として、Razor は、次のように、要素に渡された「html 属性」を解釈するのに十分スマートです。

@Html.TextBoxFor(m => m.Name, new { @data_orderid = item.id, @class="input-xxlarge" }))
于 2012-07-23T13:58:42.933 に答える