Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller 在MVC控制器中重定向到另一个不工作的控制器_Model View Controller - Fatal编程技术网

Model view controller 在MVC控制器中重定向到另一个不工作的控制器

Model view controller 在MVC控制器中重定向到另一个不工作的控制器,model-view-controller,Model View Controller,大家好,我是MVC的新手,但我以前编程过。我已经设置了一个错误控制器 当主控制器中发生错误时可以调用。我的目标是有一个错误视图,我可以传递相关的错误消息 在下面的代码中,当产品列表中没有返回任何记录时,我调用错误控制器来显示索引视图 这是我的主控制器 public ActionResult Details(int ProductID) { var model = db.Get(ProductID); if (model == nul

大家好,我是MVC的新手,但我以前编程过。我已经设置了一个错误控制器 当主控制器中发生错误时可以调用。我的目标是有一个错误视图,我可以传递相关的错误消息

在下面的代码中,当产品列表中没有返回任何记录时,我调用错误控制器来显示索引视图

这是我的主控制器

       public ActionResult Details(int ProductID)
    {   

        var model = db.Get(ProductID);
        if (model == null)
        {
            //return RedirectToAction("Index", "ErrorController");
           return errorController.Index("Record not Found", "The Product you are looking for is no longer available");

        }

        return View(model);

    }
这是它成功调用的错误控制器

     public ActionResult Index(string errorTitle, string errorMessage)
    {
        ViewBag.ErrorTitle = errorTitle;
        ViewBag.ErrorMessage = errorMessage;
        return View();
    }
此时调用索引操作结果并返回视图,但也调用来自原始控制器的详细信息视图,这会导致错误,因为没有记录。 因此,不会显示我的错误视图。 如何阻止调用原始详细信息视图? 任何帮助都会很好 谢谢你试试这个-

return RedirectToAction("Index", "Error", new {
   ErrorTitle = "Record not Found",
   ErrorMessage = "The Product you are looking for is no longer available"
});
您基本上需要重定向到错误控制器,并作为路由的一部分传入参数。RedirectToAction的参数为
RouteValue


此外,您不需要“ErrorController”,只需使用“Error”

好的,因此通常在.net中,您不希望通过这样的重定向来传递错误,相反,您应该使用像Vereyon.Web FlashMessageCore这样的库,它将帮助您以简单简洁的方式将错误重定向到用户

但是,如果您想这样做(完全正确),您仍然需要在重定向到操作调用中传递错误标题和错误消息,如下所示:

return RedirectToAction("Index", "Error", new {errorTitle="error", errorMessage="message"});

谢谢你的建议,我实际上只是在为一个测试构建一个小应用程序,所以我试图让它尽可能的通用和简单。但这是一种享受。谢谢