3

URL で特定のパラメーターが使用されている場合にのみ一致するルートを作成しようとしています。

例えば:

routes.MapRoute(
                name: "BannerAds",
                url: "Go/{Web}",
                defaults: new { controller = "CommunicationsAlias", action = "BannerAds", web = UrlParameter.Optional }
                );

URL をhttp://www.domain.com/Go/Web?=111222に一致させたい

ただし、http://www.domain.com/Go/Advertisingは対象外

このように機能するようにルートを変更するにはどうすればよいですか?

4

3 に答える 3

3

次に、ルートで URL のその部分を静的にする必要があります。

routes.MapRoute(
                name: "BannerAds",
                url: "Go/Web",
                defaults: new { controller = "CommunicationsAlias", action = "BannerAds" }
            );

そして、そのルートをより一般的なルートの上に配置します。

routes.MapRoute(
                name: "BannerAds",
                url: "Go/{Web}",
                defaults: new { controller = "CommunicationsAlias", action = "BannerAds", web = UrlParameter.Optional }
                );
于 2013-05-08T16:47:27.167 に答える
0

これを行うことができるはずです:

routes.MapRoute(name: "BannerAds",
                url: "Go/Web",
                defaults: new { controller = "CommunicationsAlias", action = "BannerAds", web = UrlParameter.Optional });

そして、次のようにコントローラーでクエリ文字列を手動で解析します。

public ActionResult BannerAds()
{
    string idStr = Request.QueryString.ToString().Trim('='); // strip of leading '='
    int id;
    if (!int.TryParse(idStr, out id))
    {
        return HttpNotFound();
    }

    ...
}
于 2013-05-08T16:47:52.747 に答える
0

このような

routes.MapRoute(
                name: "BannerAds",
                url: "Go/Web",
                defaults: new { controller = "CommunicationsAlias", action = "BannerAds", web = UrlParameter.Optional }
                );

あなたが実際にキャッチしたいだけなら

http://www.domain.com/Go/Web?x=111222

次に、クエリ文字列をチェックするコントローラーを作成します

編集

?=111222は適切なクエリ文字列ではありません-なぜそれをキャッチしたいのかよくわかりません-通常、キーと値のペアがあり、?key=111222orのように書くと、 or?x=111222の値をチェックでき、それが 111222 に等しい場合は実行しますなにかxkey

于 2013-05-08T16:48:28.430 に答える