1

エリアのルートを設定しようとしていますが、許可する必要のある次のURLがあります。

  1. http:// localhost / Review / Setup
  2. http:// localhost / Review / Setup / 65
  3. http:// localhost / Review / Setup / _AjaxGetMember?ReviewId = 53

エリア=レビュー| コントローラ=セットアップ| アクション=インデックス

したがって、URLについては、次のURLにアクセスする必要があります。

  1. http:// localhost / Review / Setup / Index
  2. http:// localhost / Review / Setup / Index / 65
  3. http:// localhost / Review / Setup / _AjaxGetMember?ReviewId = 53

これがその地域に現在登録されているルートです。

context.MapRoute(
    "Review_default",
    "Review/{controller}/{action}/{id}",
    new
    {
        action = "Index",
        id = UrlParameter.Optional
    }
);

現在、私の最初のリストの1と3は機能しますが、2はURLにインデックスを追加しないと機能しません。これらのURLを機能させて、インデックスを追加したりURLに表示したりする必要がないようにするには、他に何を追加できますか?

ありがとうございました。

4

2 に答える 2

0

私はそれをテストしませんでしたが、それは私がそれを試す方法です:

context.MapRoute(
    "Review_setup_directId",
    "Review/Setup/{id}",
    new
    {
        controller = "Setup",
        action = "Index",
        id = UrlParameter.Optional
    }
);
于 2012-04-08T06:17:45.207 に答える
0

解決しました。ルートを追加する必要がありました。これを行うためのよりエレガントな方法があるかもしれませんが、私はテストしたばかりで、それは機能します。

context.MapRoute(
    "Review_default",
    "Review/{controller}/{id}",
    new
    {
        action = "Index",
        id = UrlParameter.Optional
    },
    new
    {
        id = @"\d*"
    }
);


context.MapRoute(
    "Review_default2",
    "Review/{controller}/{action}/{id}",
    new
    {
        action = "Index",
        id = UrlParameter.Optional
    },
    new
    {
        action = @"[A-Za-z]+",
        id = @"\d*"
    }
);

context.MapRoute(
    "Review_default3",
    "Review/{controller}/{action}/{id}",
    new
    {
        action = "Index",
        id = UrlParameter.Optional
    },
    new
    {
        action = @"_[A-Za-z]+",
        id = @"\d*"
    }
);
于 2012-04-08T07:12:47.123 に答える