Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript @Url.ACtion()中不接受变量参数_Javascript_Jquery_Ajax_Asp.net Mvc 4 - Fatal编程技术网

Javascript @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

我正在@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时,其接受正确。请帮助我如何将变量传递给参数。

您不能将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来分隔参数,那么这个函数就不起作用了&它起作用了。