【问题标题】:MVC Site - Ensuring the default entry view is always correctMVC 站点 - 确保默认条目视图始终正确
【发布时间】:2010-04-20 10:09:02
【问题描述】:

我有一个具有 AD 授权的 MVC 站点。这一切都很好。我将站点发布到网络服务器并直接调用站点 (http://intranet)。如果我有一段时间没有登录(我有一个 30 分钟 TTL 的授权 cookie),系统会提示我登录,如果成功,我将被重定向到 homeController 的索引视图。这很棒,符合预期。

如果我保持会话打开(浏览器打开)并离开站点浏览,如果我随后浏览回http://intranet,我不会受到挑战,因为我最近通过了身份验证,但默认页面来自不同的控制器而不是主页视图。

我怎样才能阻止这种情况发生?它不能是一个会话设置,因为这不是一个新会话,并且路由看起来是正确的 - 无论如何,它们此时不会被调用。

请 MVC 大师指教....!

注册路由块如下:

    public static void RegisterRoutes(RouteCollection routes)
    {
        // standard MVC route regsitration

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "PaginatedTimesheets",                                                 // Route name
            "{controller}/{action}/{page}/{view}",                                 // URL with parameters
            new { controller = "Timesheets", action = "Index", page=0, view=0 }    // Parameter defaults
        );

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );
    }

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-2 asp.net-mvc-routing


    【解决方案1】:

    您的默认路线是什么样的?它应该转到路由中指定的默认控制器/操作。

    【讨论】:

    • 我确定它是正确的 - 我已将 RegisterRoutes 方法附加到原始评论中。
    • 它要去哪里? /首页或 /时间表?你想让它去哪里?
    • 必须将 default.aspx 放在根目录上,并重定向到 MVC 应用程序。适用于本地服务器,但不适用于 IIS 服务器 - 不在 IIS7/.NET4 中寻找问题。
    【解决方案2】:

    通过重定向修复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2021-05-25
      • 2013-01-30
      • 2015-06-08
      • 1970-01-01
      相关资源
      最近更新 更多