0

リクエストがあり、ルートがありますが、global.asaxに設定されているようにそれらの負荷があります...1つの典型的なルートは...

routes.MapRoute(
                "NewStore",
                "{culture}/{client}/{brand}/NewStore/{action}",
                new
                {
                    culture = UrlParameter.Optional,
                    client = UrlParameter.Optional,
                    brand = UrlParameter.Optional,
                    controller = "NewStore",
                    action = "Index"
                }
                );

ページのカルチャを切り替えるddlを作成する必要があります。したがって、実際にやりたいのは、ルートURLを再作成することですが、1つの引数を変更するだけです。だから私はこれで何かをしたい...

    Route currentRoute = httpContext.GetCurrentRoute();
    Route englishCultureRoute = currentRoute;
    Route spanishRoute = currentRoute;
    englishCultureRoute.RouteData.Values["culture"] = "en-en"
    spanishRoute RouteData.Values["culture"] = "es-es"

@Html.SelectListForRoutes(englishCultureRoute,spanishRoute);

上記は擬似コードです。コントローラーで最初のビットを実行したいのですが、C#でこれを実行するにはどうすればよいですか?

4

1 に答える 1

0

コントローラからルートデータにアクセスできます。

RouteData

新しい値を割り当てたい場合は、次のようにすることができます

public ActionResult Index(int id)
{
    RouteData.Values["id"] = 555;
    return View();
}

ビューでは、からルートデータ値にアクセスできます

@ViewContext.RouteData.Values["Id"]

しかし、アプリのグローバル化についてより良い解決策がある場合は、これを確認できます

于 2012-04-19T11:51:32.467 に答える