我有这个 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 未定义
最佳答案
要编写由 razor 引擎处理的服务器端代码,您必须在语句前添加 @
。仅当该 Javascript 嵌入到 View 中时才有效。
您也可以使用 Javascript 来完成此操作。像这样的事情应该可以解决问题
var urlParts = location.href.split('/');
var foo = urlParts[6];
var bar = urlParts[7];
关于javascript - 如何使用 htmlhelpers 或 JavaScript 从 URL 获取路由值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30900898/