2012-04-08 58 views
0

在我的索引操作中,我打電話給我的NotFound操作。我遵循調試,如果條件測試爲真,它會轉到「返回RedirectToAction(」NotFound「);」語句,然後進入Dispose,然後返回到索引操作而不是NotFound操作。如果我重定向到細節動作,它工作正常。這些都在同一個控制器中。 NotFound視圖只包含文本。RedirectToAction返回到調用操作

if (condition tests true) { return RedirectToAction("NotFound"); } 

public ActionResult NotFound() 
{ return View(); } 

我也嘗試了作爲ViewResult的NotFound。它仍然失敗。

回答

1

您可以從您的索引操作

public ActionResult Index() 
{  
    if(yourcondition) 
    { 
    return View("NotFound"); 
    } 
    else 
    { 
    // Return the Index View. 
    return View(); 
    } 
} 

這將只要有一個名爲「NotFound.cshtml」

+0

好的建議視圖中工作直接返回NotFound查看。但爲什麼原始代碼失敗? – Joe 2012-04-08 05:38:12

+0

@Joe,根據你的描述,它應該可以工作,但是沒有看到代碼,我不能說很多,這種Dispose方法來自哪裏? – Shyju 2012-04-08 12:53:40

+0

它由Controller模板生成。保護覆蓋無效處置(布爾處置) { _db.Dispose(); base.Dispose(處置); }我想不通爲什麼我不能在控制器中創建一個新的Action。如果我複製詳細信息操作並將其重命名爲Details2,它將起作用。如果我慢慢改變它,它會停止工作,當我改變一個參數的名稱,我通過它??????你的代碼是做我想做的事的正確方法。其餘的仍然是一個謎。 – Joe 2012-04-08 16:04:26

相關問題