routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}-{id}-{name}", // 【1】
new { controller = "Home", action = "Index", id = UrlParameter.Optional,name="a" } // 参数默认值
);
请求URl http://localhost:11949/
为什么把【1】中的{controller} 换成{suiyi}这样就报错这个不是随意的命名的嘛?难道这个命名有要有意思的嘛? 园子里 好多讲asp.net mvc url 路由的
但是好像都没说到这个 只讲匹配规则什么的
报错时,你在浏览器中访问的是什么网址?
http://localhost:11949/
@koi: 我这里用换成{year}还是同样的错误
@koi: 给suiyi随便指定一下值就可以了,代码如下:
routes.MapRoute( "Default", "{suiyi}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional, suiyi = "" } );
@dudu: 是可以了 不过指定什么值都没有影响。 还是根据原来的
new { controller = "Home", action = "Index",}
@koi: http://localhost:11949/这个地址本来就是用默认的。
@dudu:
routes.MapRoute(
"Default", // 路由名称
"{controller}/{y1ear}/{id}", // 带有参数的 URL
new { controller = "Home", action = "About",y1ear="Index", id = UrlParameter.Optional } // 参数默认值
);
http://localhost:11949/Home 也是访问到About
@koi: 那y1ear="Index", 设置不没意义了。。
你可以样"suiyi/{action}-{id}-{name}"
我的意思是说{suiyi}为什么不行 是{}里面的值有固定的几个还是怎么样
@koi: 可以把,除了controller和action外其他的{}内的都必须要在控制器的action中有那个参数
意思就是比如你定义{controller}/{action}-{suiyi}
new { controller = "Home", action = "Index"
在你的index动作中必须要这样写
index(数据类型 suiyi)
我也不确定是不是对的
suiyi 不是关键词,是没问题的,下面的 “new { controller = , action =” 中的 controller和action是必须的
【1】中的"{controller}", 改成{suiyi } 就报错了
@koi: 下面的 “new { controller = , action =” 中的 controller和action 填写都正确吗
@慧☆星: 绝对正确
@koi: 你没必要要那样做了,那样做的是没意义的上面的{controller}/{action}-{id}-{name} 中括号里必要和下面的有对应关系。,你想实现什么功能啊?
@慧☆星: 我就奇怪为什么不行
名为 controller 和 action 的参数,是ControllerFactory 用来匹配需要调用哪个 Controller 下面的 Action 来处理必须的路由参数,是不能随意改名的。