如何获取当前路由并调整 asp.net MVC中的一个值

本文关键字:MVC net 一个 asp 获取 何获取 路由 调整 | 更新日期: 2023-09-27 18:31:49

我有一个请求,它有一个路由,但在global.asax中设置了大量它们...一条典型的路线是...

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

我需要创建一个 ddl 来切换页面上的区域性。所以实际上我想做的只是重新创建路由网址,但改变一个参数。所以我想做点什么...

    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# 中做到这一点?

如何获取当前路由并调整 asp.net MVC中的一个值

您可以从控制器访问路由数据

RouteData

如果你想分配新的值,你可以做这样的事情

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

在视图中,您可以从以下位置访问路由数据值

@ViewContext.RouteData.Values["Id"]

但是,如果您对全球化应用程序的看法有更好的解决方案,则可以检查此内容