我正在使用 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/