以前网站是webform做的,最近要转mvc,url 用的是rewrite 地址如下:
http://www.xxx.com/detail/123.html 实际请求的是
http://www.xxx.com/detail/default.aspx?id=123
现在用mvc ,怎么设置路由啊?我想让 http://www.xxx.com/detail/123.html 这类的地址根本不存在,我想用一个专用的controll 和action 来处理。
我设置的路由根本没用。。
routes.MapRoute(
name: "Old",
url: "detail/{id}.html",
defaults: new { controller = "Old", action = "Index", id = UrlParameter.Optional }
);
就是设置routes.RouteExistingFiles = true;也不走路由。。。。直接404
从页面错误提示来看,好像根本没经过路由,直接访问物理路径,所以直接404了。。。
我想让他,物理路径不存在的时候,再由定制的路由来控制。。。
routes.MapRoute(
name: "Old",
url: "detail/{id}.html",
defaults: new { controller = "Old", action = "Index", id = UrlParameter.Optional }
);
你用 'Old/Index?id=参数' 这个能访问不?
在确保做路由之前没有问题,再设置路由。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
调试下看进没进action,没有就是路由不正确
访问 http://www.xxx.com/detail/123.html
的时候,根本就不走路由,直接返回404错误
routes.MapRoute(
name: "Old",
url: "detail/{id}.html",
defaults: new { controller = "Old", action = "Index", id = UrlParameter.Optional }
);
看看你路由的控制器是Old,Action是Index,你看看你自己的链接和路由是否想匹配吧