首页 新闻 会员 周边

mvc 路由 疑问?

0
[已解决问题] 解决于 2012-08-30 16:30
routes.MapRoute(
                    "Default", // Route name
                    "Home/{action}",
                    new { controller = "Home" } // Parameter defaults【1】
                );

上述路由 我访问http://localhost:1949/Home/index成功 ,但是把【1】这个默认的参数去掉或换成别的值(比如controller = "Hoffme")为什么就访问不成功了呢?

把参数去掉是提示

而换成别的值提示找不到页面

koi的主页 koi | 初学一级 | 园豆:4
提问于:2012-08-30 14:44
< >
分享
最佳答案
0

你有Hoffme这个controller吗?

如果路由是这样:

routes.MapRoute(
                    "Default", // Route name
                    "Home/{action}",
                    new { controller = "Hoffme" } // Parameter defaults【1】
                );

访问http://localhost:1949/Home/*链接,就一定是Hoffme Controller的.

奖励园豆:5
zhangweiwen | 小虾三级 |园豆:904 | 2012-08-30 15:20

没有  但是我访问的是http://localhost:1949/Home/index

koi | 园豆:4 (初学一级) | 2012-08-30 15:20

不是用默认controller

koi | 园豆:4 (初学一级) | 2012-08-30 15:21

@koi: 

你有Hoffme这个controller吗?

如果路由是这样:

routes.MapRoute(
                    "Default", // Route name
                    "Home/{action}",
                    new { controller = "Hoffme" } // Parameter defaults【1】
                );

访问http://localhost:1949/Home/*链接,就一定是Hoffme Controller的.

zhangweiwen | 园豆:904 (小虾三级) | 2012-08-30 15:22

@zhangweiwen: 不是没有输入地址的时候比如http://localhost:1949/  这样才调用默认的配置吗?  我现在有http://localhost:1949/Home/index   不是直接匹配我的url路由  "Home/{action}"的吗?

koi | 园豆:4 (初学一级) | 2012-08-30 15:35

@koi: 没有什么默认路由的说法,Default也是没有用的,只是个名字,还有放在最前面而已,路由匹配是根据第二个参数开始的,你固定了第一个反斜杠是Home.所以所有http://localhost:1949/Home/*都匹配这个链接,而在这里路由系统还没有找到用那个Controller(因为不是绑定{}),所以用了第三个参数的"Hoffme"作为controller,所以结论是,下面的路由配置:

routes.MapRoute(
                    "Default", // Route name
                    "Home/{action}",
                    new { controller = "Hoffme" } // Parameter defaults【1】
                );

访问http://localhost:1949/Home/*链接,就一定是Hoffme Controller的.

zhangweiwen | 园豆:904 (小虾三级) | 2012-08-30 15:56
其他回答(2)
0

你要想不出错可以把Home/{action}换为{controller}/{action}试试

artwl | 园豆:16736 (专家六级) | 2012-08-30 15:00

谢谢     不过我只是不明白为什么直接指定Home不可以 跟看到的资料说的不一样 

支持(0) 反对(0) koi | 园豆:4 (初学一级) | 2012-08-30 15:23
0

因为通过路由和url中找不到controller和Action是什么了

慧☆星 | 园豆:5640 (大侠五级) | 2012-08-30 15:25

我的路由不是"Home/{action}"吗?  匹配url  localhost:1949/Home/Index  这样不是可以匹配?

支持(0) 反对(0) koi | 园豆:4 (初学一级) | 2012-08-30 15:31

@koi: 但是你没给controller的匹配方式

支持(0) 反对(0) 慧☆星 | 园豆:5640 (大侠五级) | 2012-08-30 15:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册