应该是一个简单的问题,但我不知道为什么会这样。
在我的ASP.NET MVC 5网站中,我有一个带网格的简单视图,以及一个调用js函数向该函数发送一些参数的单元格动作。
function OnCellClick(param1, param2) {
var urlAJAX = @Url.Action("GetJson", "PosicaoEstoque", new { p1 = param1 , p2 =param2}); }
所以,像这样我得到了param1和param2的'无法解析符号'。 我该如何解决?
答案 0 :(得分:4)
您可以使用占位符。使用占位符参数生成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);
}
答案 1 :(得分:1)
不使用下面的Url.Action
:
var urlAJAX = 'PosicaoEstoque/GetJson?p1=' + param1 + '&p2=' + param2;
答案 2 :(得分:1)
您的问题是您正在混合服务器端和客户端代码。您不能简单地将JavaScript变量放在Url.Action()
中,因为它在服务器端运行。你可以做的是把一些虚拟值作为参数,并在生成的URL上调用JavaScript的replace()
函数。
检查this以供参考。