如何防止MVC中的表单重新提交

时间:2018-06-12 18:04:13

标签: c# asp.net-mvc

我目前的情况如下。 我有一个表单,当它被提交时,将模型传递给控制器​​,它完成它需要做的事情。最后,它会重定向到一个确认页面,该页面也会传递相同的模型。所有这一切都运行正常,除非我在确认页面上,每当我重新加载页面时,它都会重新提交表单。

我尝试过使用TempData,但是当我使用它时,它需要我的模型可序列化,我的模型使用其他人制作的其他模型,所有模型都需要可序列化,这将导致15-20所有需要变得可序列化的不同类似乎都不合理。

以下是我正在使用的一些内容:

[HttpPost]
public async Task<ActionResult> SubmitClaim(WarrantyClaim model)
{ 
       ... code ...
      return BeddingWarrantyConfirmation(model);
}

public ActionResult BeddingWarrantyConfirmation(WarrantyClaim model)
{
    return View("BeddingWarrantyConfirmation",model);
}

2 个答案:

答案 0 :(得分:0)

您可以使用Post Redirect Get Pattern。您可以在SubmitClaim中返回以下内容:

return RedirectToAction("BeddingWarrantyConfirmation", "CONTROLLER", model);

有关详细信息,请参阅https://en.wikipedia.org/wiki/Post/Redirect/Get

答案 1 :(得分:0)

这是MVC开发中的常见问题,您可以按照Post / Redirect / Get策略来避免请求。

https://en.wikipedia.org/wiki/Post/Redirect/Get