【发布时间】:2013-12-26 13:50:19
【问题描述】:
我有一个带有一个默认区域和一个管理区域的 MVC3 Web 应用程序。登录后两者都有自己的主页。成功登录应用程序后,如果我尝试访问管理区域,我会收到 InvalidRouteException。
场景就像我成功登录应用程序一样。当我尝试使用
访问管理区域时http://localhost/admin
我得到以下异常。
“/”应用程序中的服务器错误。
{controller}/{action}/{id} { 控制器:'admin';行动:“登录”} 说明:执行过程中发生未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详细信息:LoginSystem.Web.Exceptions.InvalidRouteException: {controller}/{action}/{id} { 控制器:'admin';操作:“登录”}
但是,如果我注销然后使用像
这样的 URLhttp://localhost/admin
成功进入登录页面。
请提出建议。
下面是我的消费区 RegisterArea 函数。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Consumer_default",
"Consumer/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }, new[] { "MyPortal.Web.Areas.Consumer.Controllers" }
);
context.MapRoute(
"Admin", // Route name
"Admin/{action}/{id}", // URL with parameters
new { controller = "Admin", action = "Index", id = UrlParameter.Optional }, new[] { "MyPortal.Web.Controllers" }// Parameter defaults
);
}
更多信息 - 更新 1 注册“管理员”路由后,我可以移动到登录页面。 我的应用程序有 2 个区域 Client 和 ADmin(这是默认区域。)这两个区域都经过身份验证。 现在的情况是我登录到客户端模块。当我登录时,我做到了
http://localhost/admin
并到达登录页面。但问题是现在 url 不包含返回 URL。我应该怎么做才能包含returnurl。
在正常情况下,当我们未登录时,登录页面会打开,并在其 url 中添加返回 url。
请提出建议。
【问题讨论】:
-
如果已经登录,LogOn 操作中是否有重定向?
-
没有这样的东西。添加更多,上面提到的url甚至没有点击action方法登录。
-
似乎如果登录,则 url 以其他方式解析,如果未登录,则 url 以其他方式解析,并以某种方式映射到操作方法登录。我是 mvc 新手,所以我不知道 url 是如何映射到操作方法的。以及应用程序如何知道它已登录。?
-
未登录时是否有来自
localhost/admin的重定向离开?
标签: asp.net-mvc-3 exception login asp.net-mvc-areas