プロパティを指定する方法 - 名前で
-
09-10-2019 - |
質問
WebアプリでJqueryMobileとともにASP.NET MVCを使用しています。リンクを生成したい:
<a href="/Whatever/Previous" data-role="button" data-icon="arrow-l">Previous</a>
ヘルパーエクステンションメソッドがあります。
<%= Html.ActionLink<WhateverController>(c => c.Previous(),
"Previous",
new { data-role = "button", data-icon="arrow-l" } ) %>
それ外 data-role
と data-icon
C#のプロパティ名として無効です。使用 @data-role
動作しません。
これを回避する構文はありますか?または、正しい属性名を知っているより専門的なヘルパーを作成することに固執していますか。
解決
使用できるはずです IDictionary<string, object>
匿名オブジェクトの代わりに:
Html.ActionLink<WhateverController>(c => c.Previous(),
"Previous",
new Dictionary<string, object>
{
{ "data-role", "button" },
{ "data-icon", "arrow-l"}
})
他のヒント
Svickの応答に加えて、アンダースコアがあるプロパティが自動的にダッシュに変換されるASP.NET MVC 3にきちんと変化しました。
したがって、このようなコードがある場合:
<%= Html.ActionLink<WhateverController>(c => c.Previous(),
"Previous",
new { data_role = "button", data_icon="arrow-l") %>
ダッシュでマークアップをレンダリングします。
<a href="/Whatever/Previous" data-role="button" data-icon="arrow-l">Previous</a>
そのキャラクターは減算/単位のマイナス演算子でもあるため、識別子で使用できません。カスタムヘルパーメソッドはおそらく最善の策だと思います。
所属していません StackOverflow