2011-04-25 46 views
0

我有一個視圖,在某個操作之後,在另一個控制器中調用一個新的操作。
當這個新動作加載其信息時,它可能會發現數據不再有效(與第三方後端工作)。
在這種情況下,我想拒絕請求,並且在呼叫頁面上保持(即不重新加載/再次調用引用者操作方法)。拒絕請求並保持在引用頁

這怎麼可能完成?

回答

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 
+0

如果當前頁面上的一些條件失敗這將導致引薦操作方法雖然再次 – user204884 2011-04-25 18:35:24

+0

@ user204884不ü希望留在調用頁面調用? – 2011-04-25 18:37:51

+0

(抱歉,我使用其他用戶登錄了...)是的,但再次調用引用者操作意味着從後端重新加載數據。這隻能通過客戶端驗證來完成嗎? – user204884 2011-04-25 18:39:30