我在SPA应用程序中设置了映射。基本映射使用Web API和以下内容:
routes.MapRoute(
"spa",
"{section}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { section = @"home|admin" });
当用户输入/ home / abc时,它会调用home控制器和索引方法。
我如何才能使其成为如下所示的三个部分的请求
/home/abc/def
/home/overview/123
/home/xx/12
/home/anything/anything
完全被忽略了?请注意,我实际上并不需要id参数,但我把它留在这里,因为它似乎没有区别,仍然调用home控制器和索引方法。
答案 0 :(得分:2)
可以采取一种解决方法..
使用 IRouteConstraint 编写一个Constraint类,并为 id 参数添加该约束。 然后在那里编写自己的逻辑来检查请求中传递的URL段,并根据您的URL要求返回TRUE / FALSE ...
有意义???
答案 1 :(得分:2)
忽略home/acb/
后使用通配符。类似的东西:
routes.IgnoreRoute("home/abc/{*pathinfo}");
在/
home/abc
会忽略任何内容
答案 2 :(得分:1)
确保您已删除默认路线:
//routes.MapRoute(
// name: "Default",
// url: "{controller}/{action}/{id}",
// defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
答案 3 :(得分:-1)
也许只是添加它们以便被忽略
routes.IgnoreRoute(route1)