当前位置:  开发笔记 > 编程语言 > 正文

ASP.Net MVC路由映射

如何解决《ASP.NetMVC路由映射》经验,为你挑选了2个好方法。

我是MVC(和ASP.Net路由)的新手.我正在尝试将*.aspx映射到一个名为的控制器*.aspx.

routes.MapRoute(
   "Page",
   "{name}.aspx",
   new { controller = "Page", action = "Index", id = "" }
);

上面的代码不会映射*.aspx PageController吗?当我运行它并输入任何.aspx页面时,我收到以下错误:

无法找到路径"/Page.aspx"的控制器,或者它没有实现IController接口.参数名称:controllerType

有什么我不在这里做的吗?



1> Ryan Eastabr..:

我刚回答了自己的问题.我向后退了路线(默认在页面上方).以下是正确的订单.所以这就提出了下一个问题......"默认"路由如何匹配(我假设它们在这里使用正则表达式)"Page"路由?

routes.MapRoute(
            "Page",
            "{Name}.aspx",
            new { controller = "Page", action = "Display", id = "" }
        );

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



2> Dale Ragan..:

我刚回答了自己的问题.我向后退了路线(默认在页面上方).

是的,您必须将所有自定义路由放在默认路由之上.

所以这就提出了下一个问题......"默认"路由如何匹配(我假设它们在这里使用正则表达式)"Page"路由?

默认路由根据我们称之为约定优于配置的内容进行匹配.Scott Guthrie在他关于ASP.NET MVC的第一篇博文中很好地解释了这一点.我建议你仔细阅读它以及其他帖子.请记住,这些是基于第一个CTP发布的,并且框架已经更改.您还可以在Scott Hanselman的asp.net网站上找到ASP.NET MVC上的网络广播.

http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx

http://www.asp.net/MVC/

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