在 MVC4 项目中,我需要根据可能存在的一些消息来“刷新”页面,否则我只是重定向到一个页面,如果存在消息,则再次显示该页面,我想避免只返回视图为当用户尝试刷新它时,它将导致双重提交。
我想做的是这个
[HttpGet]
public ActionResult SampleMethod()
{
viewModel = _builder.Build();
return View(viewModel);
}
[HttpPost]
public void SampleMethod(SampleViewModel viewModel)
{
if (ModelState.IsValid)
{
var response = serviceCall;
var errorMessages = response.ErrorMessages;
if (!errorMessages.Any())
{
//Redirect to proper view
}
else
vm = _builder.Build();
}
else vm = _builder.Build(); //There is some validation error I rebuild
CashbackOffersConfirmation(vm);
}
public ActionResult SampleMethodConfirmation(SampleViewModel viewModel)
{
return View("SampleMethod", viewModel);
}
它经历了整个过程,但最后一页是 .../SampleMethod 而不是 .../SampleMethodConfirmation 并且是空白的,
这与路由有关吗(在这方面很迷失)?这是一个正确的方法吗?
谢谢