0

この投稿を見たことがあります: MVC Handler for an unknown number of optional parameters but it's for the MVC and does not work as I as I get an error:

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 ではない) で不明な数のパラメーターを持つようにルートを設定するにはどうすればよいですか。

私は次のURLを達成しようとしています:

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 に答える