モデルの値を編集用のhtmlフォームで表示するためのエディターテンプレートがあります。エディターテンプレートでは、チェックボックスを表示/レンダリングするカスタムmvchtmlヘルパーを使用しています。フォームを送信するときに、チェックボックスの値が残りのモデルデータと一緒に送信されていないことに気付きました。生成されたHTMLを調べたところ、使用した組み込みのhtmlヘルパーにはすべてname属性があり、その値の前にインデックス値が付いていることがわかりました。
<input name="[0].CompanyName" type="text" value="CompanyName1">
<input name="[1].CompanyName" type="text" value="CompanyName2">
<input name="[2].CompanyName" type="text" value="CompanyName3">
しかし、私のカスタムhtmlヘルパー(チェックボックス)はインデックス値なしでレンダリングされました。
<input checked="checked" class="yesNoChk" id="IsActive" name="IsActive" type="checkbox" value="Y">
したがって、値がHttpPostコントローラーメソッドに戻されなかったのはなぜですか。やった!カスタムチェックボックスがいずれかのモデルに属していることを知る方法はありません。
だから、私の質問は、エディターテンプレートが使用されるときに割り当てられたhtml要素のインデックスを認識するカスタムmvc htmlヘルパーを構築するにはどうすればよいですか?組み込みのhtmlヘルパーがすべて機能するため、Microsoftは明らかにそれを理解しました。私のカスタムのものはそうではありません。