我看过这篇文章:MVC Handler for an unknown number of optional parameters但它适用于MVC并且似乎不适合我,因为我收到错误:
A path segment that contains more than one section, such as a literal section or a parameter, cannot contain a catch-all parameter.
我希望能够在网址中拥有不确定数量的参数,我有以下路线:
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
。
答案 0 :(得分:1)
下面未经测试的路线 - 通配符必须绝对是Url的最后一部分。因此,要在最后强制使用“.html”,您需要使用约束(第5个参数)。
routes.MapPageRoute(
"ManyParam",
"{*path}",
"~/Default.aspx",
false,
new RouteValueDictionary(),
new RouteValueDictionary { { "path", @".*\.html" } }
);