【问题标题】:RedirectToAction returns to calling ActionRedirectToAction 返回调用 Action
【发布时间】:2012-04-08 04:47:48
【问题描述】:

在我的索引操作中,我调用了我的 NotFound 操作。我跟着调试,如果条件测试为真,它转到“return RedirectToAction("NotFound");”语句,然后转到 Dispose,然后返回 Index Action 而不是 NotFound Action。如果我重定向到详细信息操作,它工作正常。这些都在同一个控制器中。 NotFound 视图只包含文本。

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

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

我还尝试将 NotFound 作为 ViewResult。它仍然失败。

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:

    您可以直接从您的索引操作返回 NotFound 视图

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

    只要有一个名为“NotFound.cshtml”的视图,这将起作用

    【讨论】:

    • @Joe,根据你的描述,它应该可以工作,但是没有看到代码,我不能说太多,顺便说一下这个 Dispose 方法来自哪里?
    • 由Controller模板生成。 protected override void Dispose(bool disposing) { _db.Dispose(); base.Dispose(处置);我不知道为什么我不能在控制器中创建一个新的动作。如果我复制 Details Action 并将其重命名为 Details2 它可以工作。如果我慢慢更改它,当我更改参数名称时它会停止工作我传递它??????你的代码是做我想做的事情的正确方法。其余的仍然是个谜。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2016-12-22
    相关资源
    最近更新 更多