未知参数数的Url路由
本文关键字:Url 路由 数数 参数 未知 | 更新日期: 2023-09-27 18:29:28
我看过这篇文章:MVC处理程序,用于未知数量的可选参数,但它适用于MVC,似乎对我不起作用,因为我收到了一个错误:
A path segment that contains more than one section, such as a literal section or a parameter, cannot contain a catch-all parameter.
我希望能够在Url中有不确定数量的参数,我有以下路线:
RouteCollection.MapPageRoute("ManyParam", "{*params}.html", "~/Default.aspx");
这似乎也触发了上面的错误消息。
如何在web表单(而不是MVC)中设置具有未知数量参数的路由。
我正在尝试实现以下网址:
www.example.com/some-thing.html
www.example.com/some-thing/else.html
www.example.com/and/some-thing/else.html
www.example.com/1/2/3/4/5/6.html
编辑
当我使用以下内容时,它似乎起作用:
RouteCollection.MapPageRoute("ManyParam", "{*params}", "~/Default.aspx");
问题是它不允许在末尾使用.html
。
下面未测试的路由-通配符必须是Url的最后一部分。因此,要在末尾强制使用".html",需要使用constraint(第五个参数)。
routes.MapPageRoute(
"ManyParam",
"{*path}",
"~/Default.aspx",
false,
new RouteValueDictionary(),
new RouteValueDictionary { { "path", @".*'.html" } }
);