Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 无法解析symbol@Url.Action_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript 无法解析symbol@Url.Action

Javascript 无法解析symbol@Url.Action,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,这应该是个简单的问题,但我不知道为什么会这样 在我的ASP.NETMVC5网站中,我有一个带有网格的简单视图,以及一个调用js函数并向该函数发送一些参数的单元格操作 function OnCellClick(param1, param2) { var urlAJAX = @Url.Action("GetJson", "PosicaoEstoque", new { p1 = param1 , p2 =param2}); } 这样,我得到了param1和param2的“无法解析符号

这应该是个简单的问题,但我不知道为什么会这样

在我的ASP.NETMVC5网站中,我有一个带有网格的简单视图,以及一个调用js函数并向该函数发送一些参数的单元格操作

function OnCellClick(param1, param2) {
        var urlAJAX = @Url.Action("GetJson", "PosicaoEstoque", new { p1 = param1 , p2 =param2}); }
这样,我得到了param1和param2的“无法解析符号”。
如何解决此问题?

不使用
Url。操作如下所示:

var urlAJAX = 'PosicaoEstoque/GetJson?p1=' + param1 + '&p2=' + param2;

不使用
Url.Action
如下所示:

var urlAJAX = 'PosicaoEstoque/GetJson?p1=' + param1 + '&p2=' + param2;

您可以使用占位符。使用占位符参数生成url,然后用param替换它们

function OnCellClick(param1, param2) {
    var urlAJAX = '@Url.Action("GetJson", "PosicaoEstoque", new { p1 = -1 , p2 = -2})';
    urlAJAX = urlAJAX.replace('-1', param1).replace('-2', param2);
}

您可以使用占位符。使用占位符参数生成url,然后用param替换它们

function OnCellClick(param1, param2) {
    var urlAJAX = '@Url.Action("GetJson", "PosicaoEstoque", new { p1 = -1 , p2 = -2})';
    urlAJAX = urlAJAX.replace('-1', param1).replace('-2', param2);
}

您的问题是您混合了服务器端和客户端代码。您不能简单地将JavaScript变量放入
Url.Action()
,因为它在服务器端运行。您可以做的是将一些伪值作为参数,并对生成的URL调用JavaScript的
replace()
函数


检查参考。

您的问题是混合了服务器端和客户端代码。您不能简单地将JavaScript变量放入
Url.Action()
,因为它在服务器端运行。您可以做的是将一些伪值作为参数,并对生成的URL调用JavaScript的
replace()
函数


检查参考。

是,该函数称为“表单客户端”,您正在从服务端分配url。因此变量param1和param2在javascript中不可用。所以最好有一个占位符,并替换它们hi@Satpal,这是一个很好的答案。但是我想知道OP如何在action方法中获得参数
p2
。因为它会生成像/PosicaoEstoque/GetJson?p1=aaa&;这样的URL;p2=bbb@Lin,据了解,生成的url将是
/PosicaoEstoque/GetJson?p1=aaa&p2=bbb
@Satpal,谢谢。但是我得到了
&在这两个参数之间。@Lin,这很奇怪,因为我的回答不影响
Url.Action()
如何生成Url是的,该函数从客户端调用,您从服务端分配Url。因此变量param1和param2在javascript中不可用。所以最好有一个占位符,并替换它们hi@Satpal,这是一个很好的答案。但是我想知道OP如何在action方法中获得参数
p2
。因为它会生成像/PosicaoEstoque/GetJson?p1=aaa&;这样的URL;p2=bbb@Lin,据了解,生成的url将是
/PosicaoEstoque/GetJson?p1=aaa&p2=bbb
@Satpal,谢谢。但是我得到了
&。@Lin,这很奇怪,因为我的答案并不影响
Url.Action()
如何生成urlhi@ggui,我只是好奇,使用@Satpal的答案中的代码,你能在
GetJson
方法中得到
p2
的值吗?嗨@ggui,我只是好奇,使用@Satpal的答案中的代码,在
GetJson
方法中,您真的可以获得
p2
的值吗?