クイックフィックスではなく、他の人が何をしているのだろうかと思っている。ModelStateを永続的にするが、あまりにも永続的ではない
問題は、私がModelStateを使用してエラー/検証をユーザーに報告していることですが、RedirectToAction()を使用するとModelStateが失われます。これを克服するために、私はOnActionExecutingのオーバーライドで、私が追加した、(他のすべてのコントローラが継承することを)私たちのベースコントローラにいくつかのコードを追加しました:
if (TempData["ModelState"] != null && !ModelState.Equals(TempData["ModelState"]))
ModelState.Merge((ModelStateDictionary)TempData["ModelState"]);
そしてOnActionExecutedのオーバーライドでは私が追加しました:
をTempData["ModelState"] = ModelState;
これは、間違ったページにいくつかのエラーメッセージが表示されることがあるということです。私はちょうどModelState.clear()
を実行して、私は現在のエラーを上書き/訂正したいと思うが、決してクリアされず、奇妙な場所にエラーが現れる場合があることを知っている。
どのように他の人がこれを処理しますか?任意のアイデアを歓迎するありがとう
私の結果が常にnullだったので、 'if(filterContext.Result is ViewResult)'の部分がうまくいかないことがわかりましたが、それを取り出して魅力的でした。ありがとう – Ben