2010-11-20 7 views
9

私はHtml.ActionLinkを(使用して構築していますアンカーにカスタム属性を置く必要性を持っている)ASP.NET MVC/C#:Html.ActionLink()を使用して有効なカスタムHTML属性を作成できますか?

<%: Html.ActionLink("Delete", "Delete", new { id = Model.ID }, new { data-icon = "ui-icon-trash" })%> 

http://www.w3.org/TR/html5/elements.html#attr-dataごとに、私はから次のエラーを取得するよう、適切な「データ - 」の接頭辞を使用してVisual Studio。

匿名型メンバー宣言子が無効です。匿名型メンバーは、メンバー割り当て、単純な名前またはメンバーアクセスで宣言する必要があります。

匿名型ではハイフンを使用できないため、カスタムHTML属性を追加するにはどうすればよいでしょうか?

答えて

17

data-iconは有効なC#変数名ではありません。あなたが得ることができる最も近いがこれです:もちろん

<%: Html.ActionLink(
    "Delete", 
    "Delete", 
    new { id = Model.ID }, 
    new Dictionary<string, string> { { "data-icon", "ui-icon-trash" } } 
) %> 

この問題はASP.NET MVC 3で対処されていないと、あなたは、もはやスパゲッティコードを記述する必要があります。だから、:

<%: Html.ActionLink(
    "Delete", 
    "Delete", 
    new { id = Model.ID }, 
    new { data_icon, "ui-icon-trash" } 
) %> 

そしてアンダースコアが自動的ハイフンに変換されます。

+0

涼しいですが、アップグレードするときのようです! –

関連する問題