javascript - MVC3 - Javascript 中的动态 URL 重定向

标签 javascript asp.net-mvc-3 url redirect razor

我正在使用 C#、MVC3 和 Razor。

我有一个 JavaScript 函数(在 View 中),当单击特定菜单项时会调用该函数。在此函数中,我需要构建一个带有参数的新 URL(基于屏幕上的其他选择)并重定向到它。它希望它做这样的事情:

ValueA 和 ValueB 是 javascript 部分中的变量,并用值填充。

function doSomething(ID) {
    location.href =  "../Area/Controller/Action?ID=" + ID + "&ValueA=" + ValueA + "&ValueB=" + ValueB;
  }

但是,由于 MVC 的性质,我需要确保 URL 始终正确,无论用户如何访问该页面。我尝试使用 @Url.Content("") (请参阅下一个代码块),但我遇到的问题是:

  • 名称“ID”在当前上下文中不存在
  • 名称“ValueA”在当前上下文中不存在
  • 名称“ValueB”在当前上下文中不存在

这是我想做的事情的示例,但出现上述错误:

function doSomething(ID) {
    location.href = @Url.Content("~/Area/Controller/Action?ID=" + ID + "&ValueA=" + ValueA + "&ValueB=" + ValueB);
  }

我怎样才能做到这一点?有没有更好的办法?

谢谢, 托尼

最佳答案

您应该将静态部分连接到动态部分:

location = "@Url.Content("~/Area/Controller/Action")?ID=" + ID + "&ValueA=" + ValueA + "&ValueB=" + ValueB;

外部 "@...?ID=" 是 Javascript 字符串文字。
@Url.Content("...") 是服务器端代码,它将原始文本发送到 Javascript 文本中。

关于javascript - MVC3 - Javascript 中的动态 URL 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7352560/

相关文章:

javascript - 使用 ES5 语法在 Node 中混合默认和命名导出

asp.net-mvc - 为什么 Ajax.BeginForm 不传递表单值?

python - 如何使用 lxml 在 Python 中获取已解析 HTML 页面的当前 url?

http - 如何使用 Tuckey URL 重写从一个 URL 重定向到另一个 URL?

javascript - jQuery 意外 token 错误 =

javascript - 在选择中替代 onblur/onchange

javascript - Google 地球回调未触发

asp.net-mvc-3 - System.ComponentModel.DataAnnotations 自动 Controller 单元测试中的 MethodAccessException,MVC

asp.net-mvc - 日期时间格式全局更改

python - python中node.js中的req.url相当于什么