1

ModelStateMVC3 の検証エラー メッセージについて質問があります。登録ビューに、Model オブジェクトから@Html.ValidationSummary(false)のエラー メッセージが表示されます。DataAnnotationsそれから..私の登録アクションコントローラーにはがありますがModelState.IsValid、その中if(ModelState.IsValid)にモデル状態に追加する別のエラーコントロールがModelState.AddModelError(string.Empty, "error...")あり、次に を実行しRedirectToActionますが、に追加されたメッセージModelStateはまったく表示されません。

なぜこれが起こっているのですか?

4

1 に答える 1

5

次に、RedirectToActionを実行します

それはあなたの問題だ。モデルをリダイレクトすると、状態値は失われます。モデル状態に追加された値(エラーメッセージを含む)は、現在のリクエストの存続期間中のみ存続します。リダイレクトすると、それは新しいリクエストであるため、modelstateは失われます。POSTアクションの通常のフローは次のとおりです。

[HttpPost]
public ActionResult Foo(MyViewModel model)
{
    if (!ModelState.IsValid)
    {
        // there were some validation errors => we redisplay the view
        // in order to show the errors to the user so that he can fix them
        return View(model);
    }

    // at this stage the model is valid => we can process it 
    // and redirect to a success action
    return RedirectToAction("Success");
}
于 2011-12-30T18:57:27.227 に答える