无法解析符号@ Url.Action

时间:2014-02-21 17:21:22

标签: javascript jquery asp.net-mvc

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

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

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

所以,像这样我得到了param1和param2的'无法解析符号'。 我该如何解决?

3 个答案:

答案 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以供参考。