0
モデルバインディングは私のために機能しません - 私はいつもNULLをコントローラに渡します!どんな考え?ここASP.NET MVC Razorエンジンのモデルバインドに失敗しました
ロブ
は私のアクション署名である:
@model WebOne.Models.StatusIndexModel
StatusIndexModel:ここ
public ActionResult SearchForUser(SearchForUserModel m)
私のかみそりヘッダモデル宣言でありますSearchForUserModelを含む複合モデルです。ここで
public class SearchForUserModel
{
[Required(ErrorMessage = "Search information required")]
[DisplayName("Contact Search")]
public string Search { get; set; }
}
は私のカミソリです:
<form action="/Status/SearchForUser" method="post">
<div>
<div class="editor-field">
<input data-val="true" data-val-required="Search information required" id="searchForUserModel_Search" name="searchForUserModel.Search" type="text" value="" />
<input type="submit" class="formbutton_small" value="Find" />
<br />
<span class="field-validation-valid" data-valmsg-for="searchForUserModel.Search" data-valmsg-replace="true"></span>
</div>
</div>
</form>
ああ - 理由ということである。ここ
は、生成されたHTMLです変数を作成していて、クラス定義を使用していませんか?それはplain-old-asp.net-MVCでは必要ではありませんでした...しかし、あなたは正しいと感謝します!私はあなたがとても速かったので、あなたの答えを受け入れるためにさらに8分待つ必要があります! –
@Rob、あなたのビューが強くStatusIndexModel' 'に型指定されたし、生成されたフィールド名が' searchForUserModel.Search'ので、モデルバインダーはSearchForUserModel '内部' searchForUserModel'プロパティを探しているのに対し、あなたのポストのアクションは 'SearchForUserModel'を受け入れるため、それはですそれは見つからない。接頭辞を指定すると、この接頭辞の後にルートが始まるようにモデルバインダーに指示します。 –
ああ、もう一度ダーリン、それを得た。これは、Razorパワードコントローラ上で複数のフォームを処理する最も適切な方法ですか、それとも良い方法がありますか? –