Messages私は2つのフォームを持つというアクションを持っています。
最初のフォームは にポストしSendMessage、2 番目のフォームは にポストしMessagesDeleteます。どちらのページもReturnToActionMessages ビューを返し、どちらも TempData を使用して、アクションが発生したことを示すフィードバック データ (メッセージの送信、削除されたメッセージなど) を返します。
MessagesDelete正常に動作し、最初だけ TempData を返し、その後のリクエストでそれを削除します。SendMessage一方、TempData は際限なく永続化されます。
ここにいくつかの単純化されたコードがあります。
[Authorize]
public ActionResult Messages(int? id, string message)
{
MessagesModel model = new MessagesModel();
// build model data here
return View(model);
}
[Authorize]
[HttpPost]
public ActionResult MessagesDelete(int[] selectedObjects, int? id)
{
// delete objects
TempData["MessagesDeleted"] = selectedObjects.Count() + " deleted";
return RedirectToAction("Messages", new { id = id });
}
[Authorize]
[HttpPost]
public ActionResult SendMessage(SendMessageModel model)
{
// send my message
TempData["MessageSent"] = "message sent!";
return RedirectToAction(model.action, new { id = model.action_id } );
}
私が見ることができる唯一の違いはMessagesDelete、ID を直接送信することですが、SendMessage はそれをモデル内のプロパティとして持っています。