ブートストラップ互換のフォームフィールドを作成するHtmlHelperを作成しようとしています。私の最初の目標は、周囲のdivを作成するのHtmlHelperを作成することでした。ModelMetadataを使用して完全なプロパティ名を取得する
<div class="control-group"> ... </div>
ここにも優れた助言に続き、ここで私はそれが比較的早く仕事を得ることができました。しかし、それは常に機能するとは限りません。
私は複雑なプロパティを持つViewModelを持っています。私のフォームでは、m=>m.Complex.Element
というフィールドにアクセスしています。私のヘルパーでは、検証エラーの要素をチェックします。私はModelMetadata.FromLambdaExpression(expression, html.ViewData)
を使用します。私が戻ったメタデータはElement
であり、Complex.Element
ではありません。
このプロパティのModelStateをチェックすると、ModelStateが完全な名前(Complex.Element
)を保持しているため、このプロパティを見つけることができません。
他の要素がないことを期待して部分一致を探すことができますが、それは起こるのを待っている厄介なバグのようです。式から完全なプロパティ名を取得するにはどうすればよいですか?
+1を得ることができます。私も同じ問題がありました。あなたの答えは私を助けた:) –