ASP.NET重定向错误

ASP.NET重定向错误,asp.net,asp.net-mvc-4,Asp.net,Asp.net Mvc 4,我有一个带有两个操作(“索引”和“登录”)的控制器“HomeController”类。根据条件,我必须将用户从“索引”重定向到“登录”。我尝试了下一个代码: if(HomeController.LoggedIn()) { return View(); } else { return RedirectToAction("Login", "Home", new { area = "" }); } 但这会带来错误: Description: HTTP 500.Error proces

我有一个带有两个操作(“索引”和“登录”)的控制器“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 
说明:HTTP 500。处理请求时出错。
详细信息:非web异常。异常源(应用程序或对象的名称):System.Web.Mvc。
异常堆栈跟踪:
位于System.Web.Mvc.RouteCollectionExtensions.GetVirtualPathForArea(System.Web.Routing.RouteCollection路由,System.Web.Routing.RequestContext请求上下文,System.String名称,System.Web.Routing.RouteValueDictionary值,System.Boolean和usingAreas)[0x00000]in:0
位于System.Web.Mvc.RouteCollectionExtensions.GetVirtualPathForArea(System.Web.Routing.RouteCollection路由,System.Web.Routing.RequestContext请求上下文,System.String名称,System.Web.Routing.RouteValueDictionary值)[0x00000]in:0
位于System.Web.Mvc.UrlHelper.GenerateUrl(System.String routeName、System.String actionName、System.String controllerName、System.Web.Routing.RouteValueDictionary routeValues、System.Web.RouteCollection RouteCollection RouteCollection、System.Web.Routing.RequestContext RequestContext、Boolean includeImplicitMvcValues)[0x00000]in:0
在:0中的System.Web.Mvc.RedirectToRouteResult.ExecuteSult(System.Web.Mvc.ControllerContext上下文)[0x00000]处
在System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(System.Web.Mvc.ControllerContext ControllerContext,System.Web.Mvc.ActionResult ActionResult)[0x00000]中:0
在System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1筛选器,Int32筛选器索引,System.Web.Mvc.ResultExecutingContext预文本,System.Web.Mvc.ControllerContext ControllerContext,System.Web.Mvc.ActionResult ActionResult)[0x00000 in:0
在System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1筛选器,Int32筛选器索引,System.Web.Mvc.ResultExecutingContext预文本,System.Web.Mvc.ControllerContext ControllerContext,System.Web.Mvc.ActionResult ActionResult)[0x00000 in:0

我做错了什么?

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

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

请确保是否有符合要求的偶数路由配置

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

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

另外,如果我只是简单的go-to/Home/Login-登录操作正常对不起,这是在使用MVC实现时出现的错误(现在我正在用Mono(是的,奇怪的想法)测试应用程序的工作)。代码的答案,特别是简短的答案,通常被标记为低质量。你应该解释一下为什么这是正确的答案。