MVC从视图中的url(路由)获取变量?

时间:2014-03-17 21:37:02

标签: asp.net-mvc-4 razor

在我的路由中我有

routes.MapRoute(
    name: "ctrl",
    url: "ctrl/{target_name}",
    defaults: new { controller = "ctrl", action = "TheAction" }
);

如何访问target_name?我试过ViewBag.target_name,我用Google搜索,发现很多页面都说RouteData.Values,但是我收到编译错误

CS0120: An object reference is required for the non-static field, method, or property 'System.Web.Routing.RouteData.Values.get'

所以我最终做了

public ActionResult TheAction(string target_name) { ViewBag.target_name = target_name; return View(); }

这似乎是非常错误的(因为它看起来很愚蠢)

如何在视图中访问target_name?

1 个答案:

答案 0 :(得分:4)

如果你想在视图中获取RouteData,你需要通过ViewContext获取它。

ViewContext.RouteData.Values["target_name"]