私が取り組んでいるウェブサイトに控えめなカスケードドロップダウンシステムを作成したいと思っています。カスタムHtml属性をレンダリングされたタグに含めるために、さまざまなHtmlHelperメソッドを取得する方法を調べるのに問題があります。MVC3にビューモデルアトリビュートを通じてdata- *アトリビュートを追加する
組み込みのHtmlHelperメソッドのソースを調べると、すべてGetUnobtrusiveValidationAttributesが呼び出され、すべてのdata-val- * html属性が作成されます。バリデータの属性が必要な場合は素晴らしいですが、テンプレートを変更したり、新しいHtmlHelper拡張を作成したりすることなく、このように他の属性を追加できるようにしたいと考えています。
これはすべて可能ですか?私は何か見落としていますか?
編集
私はすべてのHtmlHelperのメソッドは、HTML属性を持つオブジェクトを受け入れるオーバーロードを持っていることを知っています。私は可能な限りこれを避けようとしています。
編集2
私は基本的にこの現象が発生します:
public class ViewModel
{
[Cascading(Action="/Controller/Action")]
public int Action { get; set; }
}
そしてHtmlHelpersは次のように出てレンダリングしています:アップ記述することなく、
<select data-action="/Controller/Action"></select>
しかし、できれそれを行う拡張メソッド。私は自分のヘルパーメソッドを作成するのに問題はありませんが、既にランダムなモデルのメタデータを見て、html属性を追加できる組み込み機能が不足しているのだろうかと思います。
ありがとう、私はこれらの値を手動で追加する必要はありません。私は作成しているビューモデルの属性からhtml属性を取得します。 – rossisdead
ああ、タイトルにその部分を忘れていたに違いない。 –
心配することなく、誰かが同じ回答を投稿してから削除しました。私は少し明確にするために私の質問を更新しました。 – rossisdead