2012-04-08 63 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

相关问题