javascript - 如何使用 htmlhelpers 或 JavaScript 从 URL 获取路由值?

标签 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 未定义

最佳答案

要编写由 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/

相关文章:

jQuery 动态 CSS 加载奇怪的行为

c# - Entity Framework 货币,小数点后 3 位

c# - 如何获取在 Http 模块中引发的事件

c# - 当一项操作完成时,如何将某人从 ASP.NET MVC 中的一项操作重定向到另一项操作?

c# - 在 web.config 中保留敏感信息

带有递减参数的javascript递归

javascript - 弄乱 Firefox Javascript 解释器有多容易?

javascript - 当下方没有可用空间时,在上方显示弹出气泡

c# - ASP.Net 核心 : PayPal checkout endpoint

c# - ASP.NET MVC URl 路由 : How to deal with ? Action=测试参数