当前位置:  开发笔记 > 后端 > 正文

Asp.net MVC路由模糊,同一页面的两条路径

如何解决《Asp.netMVC路由模糊,同一页面的两条路径》经验,为你挑选了2个好方法。

我正在尝试ASP.NET MVC路由,当然偶然发现了一个问题.我有一个部分,/ Admin/Pages /,这也可以通过/ Pages /访问,它不应该.我能错过什么?

global.asax中的路由代码:

public static void RegisterRoutes(RouteCollection routes)
{
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
            "Pages",    // Route name
            "Admin/Pages/{action}/{id}",  // URL with parameters
            // Parameter defaults
            new { controller = "Pages", action = "Index", id = "" }  
        );

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

    }

谢谢!



1> Steve Morgan..:

我建议在开头添加/ Pages /的显式路由.

问题是它由默认路由处理并导出:

controller ="Pages"action ="Index"id =""

这与管理员路线的参数完全相同.



2> Haacked..:

对于这样的路由问题,您应该尝试我的Route Debugger程序集(仅在测试中使用).它可以帮助找出这些类型的问题.

PS如果您要保护页面控制器,请确保使用[授权]属性.不要只依赖URL授权.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有