如何使用 htmlhelpers 或 JavaScript 从 URL 获取路由值?
How to get routevalues from URL with htmlhelpers or JavaScript?
我有这个 MVC MapRoute
routes.MapRoute(
name: "Authenticated",
url: "{controller}/{action}/{foo}/{bar}",
defaults: new { controller = "Home", action = "WelcomePage", Foo = "0", Bar = "0" }
);
和URL
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
要编写由 razor 引擎处理的服务器端代码,您必须在语句前加上 @
。仅当 Javascript 嵌入到视图中时才有效。
您也可以使用 Javascript 来完成。像这样的东西应该可以解决问题
var urlParts = location.href.split('/');
var foo = urlParts[6];
var bar = urlParts[7];
我有这个 MVC MapRoute
routes.MapRoute(
name: "Authenticated",
url: "{controller}/{action}/{foo}/{bar}",
defaults: new { controller = "Home", action = "WelcomePage", Foo = "0", Bar = "0" }
);
和URL
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
要编写由 razor 引擎处理的服务器端代码,您必须在语句前加上 @
。仅当 Javascript 嵌入到视图中时才有效。
您也可以使用 Javascript 来完成。像这样的东西应该可以解决问题
var urlParts = location.href.split('/');
var foo = urlParts[6];
var bar = urlParts[7];