Как я могу предотвратить повторную отправку формы в MVC - PullRequest
0 голосов
/ 12 июня 2018

Моя текущая ситуация выглядит следующим образом.У меня есть форма, которая, когда она отправляется, передает модель в контроллер, и он делает то, что ему нужно сделать.В конце он перенаправляет на страницу подтверждения, которая также проходит ту же модель.Все это прекрасно работает, за исключением случаев, когда я на странице подтверждения, всякий раз, когда я перезагружаю страницу, она повторно отправляет форму.

Я пытался использовать 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 голосов
/ 12 июня 2018

Это распространенная проблема в разработке MVC, вы можете следовать стратегии Post / Redirect / Get, чтобы избежать запроса.

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

0 голосов
/ 12 июня 2018

Вы можете использовать шаблон получения после перенаправления.Вы можете вернуть следующее в SubmitClaim:

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

Для получения дополнительной информации см. https://en.wikipedia.org/wiki/Post/Redirect/Get

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...