ASP.NET重定向错误

时间:2014-06-14 13:19:39

标签: asp.net asp.net-mvc-4

我有两个动作的控制器“HomeController”类(“索引”和“登录”)。按条件我必须将用户从“索引”重定向到“登录”。我尝试了下一个代码:

if(HomeController.LoggedIn()) {
    return View();
}
else {
    return RedirectToAction("Login", "Home", new { area = "" });
}

但它会引发错误:

Description: HTTP 500.Error processing request.

Details: Non-web exception. Exception origin (name of application or object):     System.Web.Mvc.
Exception stack trace:
at System.Web.Mvc.RouteCollectionExtensions.GetVirtualPathForArea (System.Web.Routing.RouteCollection routes, System.Web.Routing.RequestContext requestContext, System.String name, System.Web.Routing.RouteValueDictionary values, System.Boolean& usingAreas) [0x00000] in <filename unknown>:0 
at System.Web.Mvc.RouteCollectionExtensions.GetVirtualPathForArea (System.Web.Routing.RouteCollection routes, System.Web.Routing.RequestContext requestContext, System.String name, System.Web.Routing.RouteValueDictionary values) [0x00000] in <filename unknown>:0 
at System.Web.Mvc.UrlHelper.GenerateUrl (System.String routeName, System.String actionName, System.String controllerName, System.Web.Routing.RouteValueDictionary routeValues, System.Web.Routing.RouteCollection routeCollection, System.Web.Routing.RequestContext requestContext, Boolean includeImplicitMvcValues) [0x00000] in <filename unknown>:0 
at System.Web.Mvc.RedirectToRouteResult.ExecuteResult (System.Web.Mvc.ControllerContext context) [0x00000] in <filename unknown>:0 
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x00000] in <filename unknown>:0 
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (IList`1 filters, Int32 filterIndex, System.Web.Mvc.ResultExecutingContext preContext, System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x00000] in <filename unknown>:0 
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (IList`1 filters, Int32 filterIndex, System.Web.Mvc.ResultExecutingContext preContext, System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x00000] in <filename unknown>:0 

我做错了什么?

2 个答案:

答案 0 :(得分:0)

要指定默认区域,只需使用:

return RedirectToAction("Login", "Home");

答案 1 :(得分:0)

请确保根据要求确定偶数路由配置是否存在?

Or 

尝试将thirs参数中的值作为id或值传递,如:

if(HomeController.LoggedIn()) {
    return View();
}
else {
    return RedirectToAction("Login", "Home", "");
}