WebGridヘルパーを使用してレンダリングされるテーブルにカスタムHTML5データ属性を追加しようとすると、問題が発生します。次のように私は、テーブルタグの外観をしたい:ここMVC3 WebGridヘルパーを使用してhtml属性名にハイフンを追加する
<table data-test="testdata"><!-- Table Content --></table>
はレイザー・ビュー・エンジンを使用したサンプル図である:「無効な匿名型のメンバ宣言子」
@{
var myUser = new
{
Id = 1,
Name = "Test User"
};
var users = new[] { myUser };
var grid = new WebGrid(users);
}
@grid.GetHtml(htmlAttributes: new { data-test = "testdata"})
最後の行が生成されますエラーは、データテストのハイフンのためです。
その他の入力HtmlHelpersでは、ハイフンの代わりにアンダースコアを使用でき、レンダリング時に自動的にハイフンに変更されます。これはWebGridでは発生しません。
私はhtmlAttributesのための辞書に渡す場合:
@grid.GetHtml(htmlAttributes: new Dictionary<string, object> {{ "data-test", "testdata"}})
テーブルは、次のようなレンダリングされる:
<table Comparer="System.Collections.Generic.GenericEqualityComparer`1[System.String]" Count="1" Keys="System.Collections.Generic.Dictionary`2+KeyCollection[System.String,System.Object]" Values="System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.Object]"><!-- Table Content --></table>
私が間違って何をやっていると私は、必要に応じて属性をレンダリング何をすべきでしょうか?
属性名の前に '@'を置くとどうなりますか? 'class'が特別なので' @ class'と打つ必要があるクラスの属性を追加したい場合、これはあなたの特別な属性にも当てはまりますか? –
@を前に置くのは、そこに置かないのと同じ動作です。 –