我有这个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接收2
和1
?我宁愿选择尽可能少的子串工作的解决方案,因为这很容易导致我认为很多错误。
注意,如果重要,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
答案 0 :(得分:1)
要编写要由razor引擎处理的服务器端代码,您必须在@
之前添加语句。只有在视图中嵌入了Javascript时,这才有效。
您也可以使用Javascript进行操作。像这样的东西应该做的伎俩
var urlParts = location.href.split('/');
var foo = urlParts[6];
var bar = urlParts[7];