0
我有一個視圖,在某個操作之後,在另一個控制器中調用一個新的操作。
當這個新動作加載其信息時,它可能會發現數據不再有效(與第三方後端工作)。
在這種情況下,我想拒絕請求,並且在呼叫頁面上保持(即不重新加載/再次調用引用者操作方法)。拒絕請求並保持在引用頁
這怎麼可能完成?
我有一個視圖,在某個操作之後,在另一個控制器中調用一個新的操作。
當這個新動作加載其信息時,它可能會發現數據不再有效(與第三方後端工作)。
在這種情況下,我想拒絕請求,並且在呼叫頁面上保持(即不重新加載/再次調用引用者操作方法)。拒絕請求並保持在引用頁
這怎麼可能完成?
你可以寫在你的控制器動作像
if(data not found)
{
return Redirect(Request.UrlReferrer.AbsoluteUri);
}
如果沒有URL轉診和你輸入在瀏覽器的地址欄中的URL會拋出空引用異常
編輯: 的情況下,用戶名/密碼驗證我們使用一個HTTPGET ActionResult的和HttpPost的一個請求
[HttpGet]
public ActionResult Login()
{
LoginViewModel model = new LoginViewModel();
return View(model);//this will render the view for first time
}
[HttpPost]
public ActionResult Login(LoginViewModel model)
{
if(!ValidUser(model))
ModelState.AddModelError("form0", "user name or password incorrect");
if(ModelState.IsValid)
{
return RedirectToAction("Home", "Index");//return to success page if correct
}
return View(model);//if we got here we have errors so render same view with errors
}
在你看來,你笑ULD使用
<%:Html.ValidationMessageFor(x=>x.UserName)%> with each field and
<%:Html.ValidationSummary()%> with your form
如果當前頁面上的一些條件失敗這將導致引薦操作方法雖然再次 – user204884 2011-04-25 18:35:24
@ user204884不ü希望留在調用頁面調用? – 2011-04-25 18:37:51
(抱歉,我使用其他用戶登錄了...)是的,但再次調用引用者操作意味着從後端重新加載數據。這隻能通過客戶端驗證來完成嗎? – user204884 2011-04-25 18:39:30