0

asp.net MVC アプリケーションには、フォームを送信したときに値に問題がある (検証が失敗した) 場合に、古い値を維持してフォームが表示されるメカニズムがあります。それはどのように起こりますか?これらの値はどこに保持されますか? または FormCollection から収集しました。

ヘルプが適用されます。

よろしくパーミンダー

4

3 に答える 3

0

ASP.NET MVC は複数の場所で値を検索するため、コントローラー アクションとビューの設定方法に大きく依存します。

FormCollection はコントローラの Action がパラメータとして取り込むものであり、値が実際に表示される View とは完全に分離されているため、FormCollection を使用するという仮定は間違っています。

1.0 では、デフォルトで、ビューの編集テンプレートは、次のように、ほとんどの HtmlHelpers で 2 番目のパラメーターを使用します。

<%=Html.Textbox("Title", Model.ID)%>

これにより、バインドされたモデル オブジェクトから古い値が取得されます。したがって、検証に明示的に失敗して View(object) を返す場合、値はそのオブジェクトから取得されます。それでも、次のように明示的に検証に失敗している場合:

if (ModelState.IsValid == false)
{
    return View();
}

モデルがバインドされていないため、HtmlHelper コードでエラーが発生する可能性があります。

次のように、2 番目のパラメーターを完全に省略した場合:

<%=Html.Textbox("Title")%>

値は投稿 (Request.Form) 値から取得されます。

于 2009-10-30T13:11:06.003 に答える
0

それを行う 1 つの方法は、ModelState.AddModelErrorを使用することです。

MVC エラー処理に関する優れたチュートリアルは、ここにあります。

于 2009-10-30T13:17:38.283 に答える
0

データを含むビューを返すことでそれを行うことができます

if (ModelState.IsValid == false) 
{
return View(X);
}

X は、返す必要があるデータです

于 2016-04-03T15:52:43.627 に答える