C# 从OnActionExecuting重定向--匹配的路由不包括';控制器';价值
这应该是一个超级简单的任务-从基本控制器重定向。以下是一个示例性参考,但不包括我遇到的错误: 代码: 呈现的URL: 调试时,传递到Result属性的重定向对象同时包含控制器和操作值。在返回的URL中,它也存在 问题: 为什么它抱怨没有控制器值?为什么除了正常格式外,它还要在查询字符串中显示控制器和操作值 更新:C# 从OnActionExecuting重定向--匹配的路由不包括';控制器';价值,c#,asp.net-mvc,controller,asp.net-mvc-4,asp.net-mvc-routing,C#,Asp.net Mvc,Controller,Asp.net Mvc 4,Asp.net Mvc Routing,这应该是一个超级简单的任务-从基本控制器重定向。以下是一个示例性参考,但不包括我遇到的错误: 代码: 呈现的URL: 调试时,传递到Result属性的重定向对象同时包含控制器和操作值。在返回的URL中,它也存在 问题: 为什么它抱怨没有控制器值?为什么除了正常格式外,它还要在查询字符串中显示控制器和操作值 更新: 不幸的是,这是一个程序员的错误。请投票结束。 protected override void OnActionExecuting(ActionExecutingContext filt
不幸的是,这是一个程序员的错误。请投票结束。
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (myObject == null) {
// System.InvalidOperationException: The matched route does not include a 'controller' route value, which is required.
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary {{ "controller", "controllerName"}, {"action", "actionName"}});
// Throws the same exception:
filterContext.Result = RedirectToAction("actionName", "controllerName");
}
}
http://localhost/controllerName/actionName?controller=controllerName&action=actionName
// hard coded URL produces the same result. What am I misunderstanding?
filterContext.Result = new RedirectResult("~/Employee/Create");