如何获取当前路由并调整 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# 中做到这一点?
您可以从控制器访问路由数据
RouteData
如果你想分配新的值,你可以做这样的事情
public ActionResult Index(int id)
{
RouteData.Values["id"] = 555;
return View();
}
在视图中,您可以从以下位置访问路由数据值
@ViewContext.RouteData.Values["Id"]
但是,如果您对全球化应用程序的看法有更好的解决方案,则可以检查此内容