0
我有一些MVC視圖,只有在工作流的上下文中才有意義。例如。用戶在另一個頁面上提交信息,然後重定向到僅顯示「成功」的頁面。如何處理無效的asp MVC路由
由於重定向是GET,因此無法通過調整其URL來阻止用戶手動導航到頁面。
在這種情況下應該怎麼做?重定向到錯誤頁面,顯示空白頁面?
我有一些MVC視圖,只有在工作流的上下文中才有意義。例如。用戶在另一個頁面上提交信息,然後重定向到僅顯示「成功」的頁面。如何處理無效的asp MVC路由
由於重定向是GET,因此無法通過調整其URL來阻止用戶手動導航到頁面。
在這種情況下應該怎麼做?重定向到錯誤頁面,顯示空白頁面?
在我看來,成功信息視圖不應該有路由,因爲它們不打算從瀏覽器URL中提供。在我們的項目,我們通常從後action.for例如直接返回成功視圖,
[HttpPost]
public ActionResult ChangePassword(ChangePasswordModel model)
{
if (ModelState.IsValid)
{
bool changePasswordSucceeded;
try
{
MembershipUser currentUser = Membership.GetUser(User.Identity.Name, userIsOnline: true);
changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword);
}
catch (Exception)
{
changePasswordSucceeded = false;
}
if (changePasswordSucceeded)
{
var infoModel = new AnyInfoModel();
return View("ChangePasswordSuccess", infoModel); // This is not redirected, but success shown in the current route url.
}
else
{
ModelState.AddModelError("", "The current password is incorrect or the new password is invalid.");
}
}
return View(model);
}
但是,這有一個缺點同樣,如果用戶不小心碰到他F5鍵的瀏覽器,它會嘗試重新發布形式。
請停止將「ASP.NET MVC」簡稱爲「MVC」。一個是框架,而另一個是獨立於語言的設計模式。這就像調用IE - 「互聯網」 –
因此,標籤......將重新命名標題。 – Kye
是的,我編輯了您的標籤,但無法重寫您的整個問題。 –