如何使用htmlhelpers或JavaScript从URL获取routevalues?

时间:2015-06-17 19:40:24

标签: javascript asp.net asp.net-mvc asp.net-mvc-5 asp.net-routing

我有这个MVC MapRoute

routes.MapRoute(
    name: "Authenticated",
    url: "{controller}/{action}/{foo}/{bar}",
    defaults: new { controller = "Home", action = "WelcomePage", Foo = "0", Bar = "0" }
);

和网址

http://localhost/mysite/controller/action/2/1

我如何使用JavaScript接收21?我宁愿选择尽可能少的子串工作的解决方案,因为这很容易导致我认为很多错误。

注意,如果重要,URL有时会以?filter = xx结尾。

我试过了

var foo= ViewContext.RouteData.Values["foo"];
var bar= ViewContext.RouteData.Values["bar"];

alert('foo: ' + foo);
alert('bar: ' + bar);

结果: e: ReferenceError: ViewContext is not defined

1 个答案:

答案 0 :(得分:1)

要编写要由razor引擎处理的服务器端代码,您必须在@之前添加语句。只有在视图中嵌入了Javascript时,这才有效。

您也可以使用Javascript进行操作。像这样的东西应该做的伎俩

var urlParts = location.href.split('/');
var foo = urlParts[6];
var bar = urlParts[7];