9

私が次のようなものを持っていた場合、かみそりで:

@Html.EditorFor(model => model.name)あるいは:@Html.CheckBoxFor(m => m.RememberMe)

それらに css クラスまたは ID を追加するにはどうすればよいですか? ヘルパーについて読んでいましたが、要素ごとにヘルパーを作成する必要がありますか? かみそりフォーム要素にクラスまたは ID を追加する簡単な方法はありませんか?

4

3 に答える 3

13

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" })
于 2013-04-17T14:01:54.073 に答える
4

CheckboxFor の場合は簡単です。次のようにできます。

@Html.CheckBoxFor(m => m.RememberMe, new { @class="your_class", @id="the_id" })

そのままではサポートされていないため、EditorFor の場合は少し注意が必要です。つまり、各タイプのテンプレートを作成してから、HTML 属性を追加する TextBoxFor を実行できます (CheckBoxFor と同じ構文)。サポートしたいタイプごとにそれを行う必要があるかもしれません。

于 2013-04-17T14:04:17.253 に答える
0

タイプ固有ではないためEditorFor、それらには使用できません。

の場合CheckBoxFor、次を使用できます。

@Html.CheckBoxFor(m => m.RememberMe, new { @class = "myClass", id = "myID" })

これは C# の予約済みキーワードであるため、@前に注意してください。class

于 2013-04-17T13:58:52.510 に答える