我在@Url.Action()
传递两个变量参数。但它不接受变量参数但接受常数值。我的代码就像这样
$(document).ready(function () {
$(".print").click(function () {
var id = $(#id).val();
var dept = $(#dept ).val();
var url = "@Html.Raw(@Url.Action("ActionResultname", "ControllerName", new {sid= id , sdept=dept }))";
window.location.href = url;
});
});
id
& sid
不接受作为值,它作为字符串。但如果我像
var url = "@Html.Raw(@Url.Action("ActionResultname", "ControllerName", new {sid= 10, sdept=30}))";
正确接受sid=10
& sdept=30
。请帮我如何将变量传递给参数。
答案 0 :(得分:3)
您无法将JavaScript变量传递给Url.Action
,因为它在服务器端执行。进一步Url.Action
函数将呈现一个字符串。
但是,您可以使用带有静态值的生成网址,并将其替换为您的输入。
//Render Url with -1 and -2 value
var url = '@Url.Action("ActionResultname", "ControllerName", new { sid = -1, sdept= -2})';
url = url.replace(-1, id); //replace -1 with id
url = url.replace(-2, dept); //replace -2 with dept
window.location.href = url;
答案 1 :(得分:1)
在你的情况下,我建议只写出你想要的链接,因为Razor代码在服务器端运行,所以它不会更新你想要的值。 如何将代码更改为:
$(document).ready(function () {
$(".print").click(function () {
var id = $(#id).val();
var dept = $(#dept ).val();
var url = "/ControllerName/ActionResultname?sid=" + id + "&sdept=" +dept;
window.location.href = url;
});
});
答案 2 :(得分:1)
这不可能您需要通过客户端附加查询 试试这个
$(document).ready(function () {
$(".print").click(function () {
var id = $('#id').val();
var dept = $('#dept').val();
var url = '@Url.Action("ActionResultname", "ControllerName")';
url += "?sid= " + id + "&sdept=" + dept;
window.location.href = url;
});
});