2011-11-06 67 views
0

我有以下ActionResult。爲什麼我的應用程序重定向時,我告訴它?

[HttpPost] 
public ActionResult Logon(AdminModel model) 
{ 
    if (model.UserName == "x" && model.Password == "x") 
    { 
     Session["Authenticated"] = "true"; 

     RedirectToAction("CreateBlog", "BlogController"); 

    } 
    else 
    { 
     ModelState.AddModelError("", "The user name or password provided is incorrect."); 

    } 

    return View(model); 


} 

但是,當進入RedirectToAction調用代碼後,直到View調用,然後抱怨我沒有登錄視圖。但我不需要一個即時通訊使用'索引'視圖來顯示登錄詳細信息,我只是希望上述帶我到另一個視圖。我錯過了什麼嗎?

回答

1

好,回報:

return RedirectToAction("CreateBlog", "BlogController"); 

在ASP.NET MVC控制器動作回報作用的結果。在你的情況下,你只需調用RedirectToAction方法但不返回結果。在你的代碼示例中,動作執行直到它到達最後一行,當然這會返回一個視圖而不是重定向。您一定要通過返回適當的操作結果來停止操作執行並立即重定向。

+0

啊我看到了,我可以問一下,你是否總是有一個對應於ActionResult名稱的視圖,或者可以創建只將用戶引導到其他視圖的actionresults? – Exitos

+0

視圖應該是可重用的。但措辭「把用戶引向其他觀點」聽起來像是一種無足輕重的東西。作爲某些操作的結果,用戶被呈現爲視圖*。 – bzlm

+0

有意義的乾杯... – Exitos

相關問題