エラーメッセージ、検証エラーなどについては、
ModelState.AddErrorMessage("Fool!");
しかし、「あなたはあなたの元にたくさんのお金をうまく送金した」のような成功の応答をどこに置きますか?+「残高はゼロになりました」。それでも、コントローラーレベルで、できればKey-Valueの方法で、エラーメッセージと同じように、ただしmodelstateを無効にせずに設定したいと思います。
これは通常どのように行われますか?ViewData?
エラーメッセージ、検証エラーなどについては、
ModelState.AddErrorMessage("Fool!");
しかし、「あなたはあなたの元にたくさんのお金をうまく送金した」のような成功の応答をどこに置きますか?+「残高はゼロになりました」。それでも、コントローラーレベルで、できればKey-Valueの方法で、エラーメッセージと同じように、ただしmodelstateを無効にせずに設定したいと思います。
これは通常どのように行われますか?ViewData?
TempData ["success"](または与えたいキー)にコントローラー内に表示したいメッセージを入力し、適切にリダイレクトします(たとえば、ユーザーを編集する場合は、ユーザーリストにリダイレクトします)。 。これはPOST/リダイレクト/GETパターンに依存しています-とにかく良い習慣です。
TempData["success"] = "Your Balance is now zero";
マスターページには、その変数をチェックし、メッセージを素敵なスタイルのdivで表示するセクションがあります。次のようなもの(100%正しくない場合があります):
<% if(TempData["success"] != null) { %>
<div id="SuccessMessage"><%= Html.Encode(TempData["success"]) %><div>
<% } %>
modelstateをチェックして、モデルに変数を設定できると思います...
public ActionResult MyAction(MyEntity model)
{
//Here would be some validation, which returns with ModelState errors
//Now set the validity of the modelstate as the IsValid property in your entity
model.IsValid = ModelState.IsValid;
return View(model);
}
あなたの見解では...
<% if(Model.IsValid) { %>
<p>You successfully transfered your balance to your ex.</p>
<% } %>
編集:あなたの更新された質問を考えると、私はあなたが間違ったアプローチを取ることを考えていると思います。私は他の答えと一緒に行き、PRGパターンに従います。これは、偽のエラーを追加しようとするよりも間違いなく理にかなっています。
すべての検証が検証され、すべてが正常に実行された後、POST / Redirect / GETパターンのようなものを実装し、アクションメソッドの最後に別のビューに「リダイレクト」する必要があります。オブジェクトインスタンス全体を宛先ビューに渡すか、プレーンテキストメッセージを渡すか、宛先ビュー自体のテキストをweb.configまたはリソースファイルから引き出すことができます。
たとえば、共有フォルダーに「ChangeSuccess.aspx」という名前のビューが1つあり、成功したすべての編集と作成にリダイレクトします。
あなたはこのように「リダイレクト」します
return View("ChangeSuccess", objectInstance);
(注:実際にはリダイレクトされません。コメントを参照してください)