关于 Mvc 路由
About Mvc routes
我只想为 defaultController
设置规则
routes.MapRoute(
name: "testDefault",
url: "Default/{action}/{id}.html",
defaults: new { controller = "Default", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Test",
action = "Show",
id = UrlParameter.Optional
}
);
不过,http://10.12.2.37:120/test/show/2.html也可以打开。这不是我想要的。有人可以帮助我吗?
我认为您缺少限制条件:
routes.MapRoute(
name: "testDefault",
url: "Default/{action}/{id}.html",
defaults: new { controller = "Default", action = "Index", id = UrlParameter.Optional },
constraints: new {
id = @"\d+"
}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Test",
action = "Show",
id = UrlParameter.Optional
},
constraints: new {
id = @"\d+"
}
);
我还建议您使用路由测试工具,例如routedebugger from Phil Haack. You can get it using nuget。
我只想为 defaultController
routes.MapRoute(
name: "testDefault",
url: "Default/{action}/{id}.html",
defaults: new { controller = "Default", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Test",
action = "Show",
id = UrlParameter.Optional
}
);
不过,http://10.12.2.37:120/test/show/2.html也可以打开。这不是我想要的。有人可以帮助我吗?
我认为您缺少限制条件:
routes.MapRoute(
name: "testDefault",
url: "Default/{action}/{id}.html",
defaults: new { controller = "Default", action = "Index", id = UrlParameter.Optional },
constraints: new {
id = @"\d+"
}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Test",
action = "Show",
id = UrlParameter.Optional
},
constraints: new {
id = @"\d+"
}
);
我还建议您使用路由测试工具,例如routedebugger from Phil Haack. You can get it using nuget。