1

私は ASP.NET WebForms と C# で作業しています。さまざまなページのルートを追加しようとしています。これは、ルートを登録する global.asax のサンプル コードです。

protected void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
    //AppSettings = AppConfig.AppSettings.Settings;
    //ConSettings = AppConfig.ConnectionStrings.ConnectionStrings;
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.Add("Admin_Users_Update", new Route("Admin/Users/Update/{UserId}", new RoutingHandler("~/Forms/Admin/Users/UpdateUser.aspx")));
}

それは正常に動作します。/Admin/Users/Update/1 のような URL を開くと、編集フォームがうまく開きます。しかし、パターンに従わなかったり、変更を加えたりしないと、問題が発生します。私たちが入る場合のように

/Admin/Users/Update/1/2

また

/Admin/Users/Update/

単に 404 ページが表示されます。

どうすれば対処できるか知っていますか?そのため、URL パターンにほとんど違いがない場合でも、それを処理できるはずです。

4

1 に答える 1

1

パターンを指定してルート ハンドラーに検索を依頼すると、そのパターンのみが検索されます。フレームワークはあなたのルールに従います。

あなたの選択肢は

1) 考えられるさまざまなパターンをすべて見つけて、ルートを登録します (おそらく /1/2 などに何らかの ID を使用できます)。

2) ルーティング ルールに正規表現を指定できます。ここを見てください。

3) オープンソースのURL リライターをチェックしてください。それはあなたが望むものを与えるかもしれません..ここにサンプルがあります。

4) ルーティングをスキップし、リクエストをリッスンするパイプラインにある独自の http モジュールを使用して、自分で処理します。ルート ハンドラー セクションを読んで適用することで、組み込みのルーティングを活用できる可能性があります。よくわかりませんが、試してみる価値があります。

于 2011-07-25T14:48:01.340 に答える