Javascript @Url.ACtion()中不接受变量参数
我正在@Url.Action中传递两个变量参数。但它不接受可变参数,而是接受常量值。我的代码是这样的Javascript @Url.ACtion()中不接受变量参数,javascript,jquery,ajax,asp.net-mvc-4,Javascript,Jquery,Ajax,Asp.net Mvc 4,我正在@Url.Action中传递两个变量参数。但它不接受可变参数,而是接受常量值。我的代码是这样的 $(document).ready(function () { $(".print").click(function () { var id = $(#id).val(); var dept = $(#dept ).val(); var url = "@Html.Raw(@Url.Action("ActionResultname", "Co
$(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时,其接受正确。请帮助我如何将变量传递给参数。您不能将JavaScript变量传递给Url.Action,因为它是在服务器端执行的。进一步的Url.Action函数将呈现一个字符串 但是,您可以使用带有静态值的generateURL,并将其替换为您的输入
//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;
您不能将JavaScript变量传递给Url.Action,因为它是在服务器端执行的。进一步的Url.Action函数将呈现一个字符串 但是,您可以使用带有静态值的generateURL,并将其替换为您的输入
//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;
在您的情况下,我建议在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;
});
});
在您的情况下,我建议在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;
});
});
这是不可能的,您需要通过客户端附加查询 试试这个
这是不可能的,您需要通过客户端附加查询 试试这个
Razor代码在发送到视图之前在服务器上进行解析。它不会因为您定义了一些javascript变量而得到更新。Razor代码在发送到视图之前在服务器上进行解析。它不会因为您定义了一些javascript变量而得到更新。shi@Satpal,这种方法是否可以用于将Json对象作为参数之一传递?。如果可以的话,你能详细介绍一下怎么做吗?我已经试了好几个小时了,我总是在服务器上初始化对象,但参数为空。谢谢。事实上,尝试传递两个整数对我不起作用,第二个总是传递为假…知道为什么吗?@Juan,不,当您想要传递JSON时,这种方法是没有用的,如果您发布一个新问题,这样更多的用户可以帮助您,效果会更好。您也可以与我共享链接。显然,我的第二个参数为null的原因,即使两个参数都是整数,也是因为它们之间的分隔为&;出于某种原因,如果我用一个简单的函数手动创建url来分隔参数,那么这个函数就不起作用了&it works.Hi@Satpal,这种方法可以用来传递Json对象作为参数之一吗?。如果可以的话,你能详细介绍一下怎么做吗?我已经试了好几个小时了,我总是在服务器上初始化对象,但参数为空。谢谢。事实上,尝试传递两个整数对我不起作用,第二个总是传递为假…知道为什么吗?@Juan,不,当您想要传递JSON时,这种方法是没有用的,如果您发布一个新问题,这样更多的用户可以帮助您,效果会更好。您也可以与我共享链接。显然,我的第二个参数为null的原因,即使两个参数都是整数,也是因为它们之间的分隔为&;由于某种原因,如果我用一个简单的函数手动创建url来分隔参数,那么这个函数就不起作用了&它起作用了。