Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/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
C# 从MVC应用程序中的OneException方法路由到视图_C#_Asp.net Mvc_Asp.net Mvc Routing - Fatal编程技术网

C# 从MVC应用程序中的OneException方法路由到视图

C# 从MVC应用程序中的OneException方法路由到视图,c#,asp.net-mvc,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc Routing,在操作中引发异常时,我正在尝试将应用程序重新路由到同一视图: [HttpPost] public EmptyResult Action(ModelClass modelObject) { _facade.update(modelObject); return new EmptyResult(); } protected override void OnException(ExceptionContext filterContext) { if (filterConte

在操作中引发异常时,我正在尝试将应用程序重新路由到同一视图:

[HttpPost]
public EmptyResult Action(ModelClass modelObject)
{
    _facade.update(modelObject);
    return new EmptyResult();
}


protected override void OnException(ExceptionContext filterContext)
{
    if (filterContext.Exception is MyException)
    {
        var controllerName = (string)filterContext.RouteData.Values["controller"];
        var actionName = (string)filterContext.RouteData.Values["action"];
        var model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);

        filterContext.Result = new ViewResult
        {
            ViewName = "~/Views/ViewFolder/View.cshtml",
            ViewData = new ViewDataDictionary<HandleErrorInfo>(model),
            TempData = filterContext.Controller.TempData
        };


        filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
    }
    base.OnException(filterContext);
}
[HttpPost]
公共EmptyResult操作(ModelClass modelObject)
{
_facade.update(modelObject);
返回新的EmptyResult();
}
受保护的覆盖无效OneException(ExceptionContext filterContext除外)
{
if(filterContext.Exception是MyException)
{
var controllerName=(字符串)filterContext.RouteData.Values[“controller”];
var actionName=(字符串)filterContext.RouteData.Values[“action”];
var model=newhandleerrorinfo(filterContext.Exception、controllerName、actionName);
filterContext.Result=新的ViewResult
{
ViewName=“~/Views/ViewFolder/View.cshtml”,
ViewData=新的ViewDataDictionary(型号),
TempData=filterContext.Controller.TempData
};
filterContext.HttpContext.Response.StatusCode=(int)HttpStatusCode.InternalServerError;
}
base.OnException(filterContext);
}

我缺少什么?

视图名称是按约定映射的。您不需要放置完整路径

结果的视图名称将具有显式指定的视图名称 传递给结果。在运行时,如果未指定视图名称 然后ASP.NET MVC将使用 路由系统。它无法在单元测试中“猜测” 视图名称应该是什么

你可以在StackOverflow.com上找到这篇文章的更多信息:

受保护的覆盖无效OneException(ExceptionContext filterContext)
{
if(filterContext.Exception是MyException)
{
var controllerName=(字符串)filterContext.RouteData.Values[“controller”];
var actionName=(字符串)filterContext.RouteData.Values[“action”];
var model=newhandleerrorinfo(filterContext.Exception、controllerName、actionName);
filterContext.Result=新的ViewResult
{
ViewName=actionName,
ViewData=新的ViewDataDictionary(型号),
TempData=filterContext.Controller.TempData
};    
filterContext.HttpContext.Response.StatusCode=(int)HttpStatusCode.InternalServerError;
}
base.OnException(filterContext);
}

视图名称按约定映射。您不需要放置完整路径

结果的视图名称将具有显式指定的视图名称 传递给结果。在运行时,如果未指定视图名称 然后ASP.NET MVC将使用 路由系统。它无法在单元测试中“猜测” 视图名称应该是什么

你可以在StackOverflow.com上找到这篇文章的更多信息:

受保护的覆盖无效OneException(ExceptionContext filterContext)
{
if(filterContext.Exception是MyException)
{
var controllerName=(字符串)filterContext.RouteData.Values[“controller”];
var actionName=(字符串)filterContext.RouteData.Values[“action”];
var model=newhandleerrorinfo(filterContext.Exception、controllerName、actionName);
filterContext.Result=新的ViewResult
{
ViewName=actionName,
ViewData=新的ViewDataDictionary(型号),
TempData=filterContext.Controller.TempData
};    
filterContext.HttpContext.Response.StatusCode=(int)HttpStatusCode.InternalServerError;
}
base.OnException(filterContext);
}

视图名称需要与控制器上的
操作的名称匹配。在哪个上下文中?一般来说,视图名称不需要与控制器上的
操作的名称匹配。在哪个上下文中?一般来说,它不需要
protected override void OnException(ExceptionContext filterContext)
{
    if (filterContext.Exception is MyException)
    {
        var controllerName = (string)filterContext.RouteData.Values["controller"];
        var actionName = (string)filterContext.RouteData.Values["action"];
        var model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);

        filterContext.Result = new ViewResult
        {
            ViewName = actionName,
            ViewData = new ViewDataDictionary<HandleErrorInfo>(model),
            TempData = filterContext.Controller.TempData
        };    

        filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
    }
    base.OnException(filterContext);
}