ASP.NET MVC3 アプリケーションのルーティングに問題があり、思いどおりに動作しません。
Global.asax のルーティング定義
routes.MapRoute(
"News", // Route name
"{lang}/{controller}/{action}/{page}/{id}", // URL with parameters
new { lang = "pl", controller = "News", action = "Index", page = 1, id = UrlParameter.Optional } // Parameter defaults
);
だから私は2つの状況でそれを使いたい:
/{lang}/{controller}/{action}/{page}
- 特定のページネーションのページに移動する/{lang}/{controller}/{action}/{page}/{id}
- 現在のページを記憶し、特定のid
.
私が使用するリンクを生成するには:
@Html.RouteLink(i.ToString(), "News", new { lang = ViewBag.Lang, page = i })
はi
ページ番号、lang は言語です。
コントローラーでは、魔女のアクションを処理します:
public ViewResult Index(string lang, int page = 1)
問題
@Html.RouteLink
リンク/pl/News/Index/2
が表示されますが (「2」がクリックされた場合)、コントローラーはそれを処理せず、ページは「1」のままです。したがって、同じリンクを 2 回クリックすると、次のよう/pl/News/Index/2/2
になります。ページは「2」に等しくなります。
誰かがそれがどのように正確に機能するかを説明してくれたら、それを解決するために何ができますか?
どんな助けでも大歓迎です。