私が次のようなものを持っていた場合、かみそりで:
@Html.EditorFor(model => model.name)
あるいは:@Html.CheckBoxFor(m => m.RememberMe)
それらに css クラスまたは ID を追加するにはどうすればよいですか? ヘルパーについて読んでいましたが、要素ごとにヘルパーを作成する必要がありますか? かみそりフォーム要素にクラスまたは ID を追加する簡単な方法はありませんか?
私が次のようなものを持っていた場合、かみそりで:
@Html.EditorFor(model => model.name)
あるいは:@Html.CheckBoxFor(m => m.RememberMe)
それらに css クラスまたは ID を追加するにはどうすればよいですか? ヘルパーについて読んでいましたが、要素ごとにヘルパーを作成する必要がありますか? かみそりフォーム要素にクラスまたは ID を追加する簡単な方法はありませんか?
EditorFor
どのテンプレートが使用されるかわからないという理由だけで、ヘルパーでそれを行うことはできません。それを達成することはできますが、カスタム エディター テンプレートを作成する必要があります。たとえば、これは をオーバーライドしdefault editor template
、追加のビュー データを表す 2 番目のパラメータを考慮することで実現できます。
このようなカスタム エディター テンプレートで文字列型 ( ~/Views/Shared/EditorTemplates/string.cshtml
)を検索する方法の例を次に示します。
@Html.TextBox(
"",
ViewData.TemplateInfo.FormattedModelValue,
ViewData
)
そして、次のように使用できます。
@Html.EditorFor(model => model.name, new { @class = "myclass" })
CheckBoxFor ヘルパーを使用すると、次のことができます。
@Html.CheckBoxFor(m => m.RememberMe, new { @class = "myclass" })
CheckboxFor の場合は簡単です。次のようにできます。
@Html.CheckBoxFor(m => m.RememberMe, new { @class="your_class", @id="the_id" })
そのままではサポートされていないため、EditorFor の場合は少し注意が必要です。つまり、各タイプのテンプレートを作成してから、HTML 属性を追加する TextBoxFor を実行できます (CheckBoxFor と同じ構文)。サポートしたいタイプごとにそれを行う必要があるかもしれません。
タイプ固有ではないためEditorFor
、それらには使用できません。
の場合CheckBoxFor
、次を使用できます。
@Html.CheckBoxFor(m => m.RememberMe, new { @class = "myClass", id = "myID" })
これは C# の予約済みキーワードであるため、@
前に注意してください。class