0
在一個MVC4項目中,我需要根據一些可能存在的消息來「刷新」頁面,否則我只是重定向到一個頁面,如果再次呈現頁面消息存在我想避免只返回視圖,因爲它會導致當用戶嘗試刷新它時雙重提交。Post方法調用另一個返回視圖
我想要做的就是這個
[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是空白,
這是關於路由(相當迷茫)嗎?這是一個正確的方法嗎?
感謝
您是否返回了正確的視圖?你正在返回View(「SampleMethod」,viewModel);也許它需要被返回View(「SampleMethodConfirmation」,viewModel);? –
你可能會嘗試返回RedirectToAction(「SampleMethod」)而不是返回視圖 –
如果我返回RedirecToAction的問題是我失去了視圖的狀態。如果我返回SampleMethodConfirmation,我需要基本上覆制SampleMethod中存在的視圖代碼(也許可以使用部分視圖代碼) – mitomed