0

我看过这篇文章: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.

我希望能够在 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

4

1 回答 1

1

下面未经测试的路线 - 通配符必须绝对是 Url 的最后一部分。因此,要在最后强制使用“.html”,您需要使用约束(第 5 个参数)。

routes.MapPageRoute(
    "ManyParam",
    "{*path}",
    "~/Default.aspx",
    false,
    new RouteValueDictionary(),
    new RouteValueDictionary { { "path", @".*\.html" } }
 );
于 2013-08-28T07:44:14.303 回答