Jquery 如何从视图调用控制器方法

Jquery 如何从视图调用控制器方法,jquery,asp.net-mvc-4,jqgrid,Jquery,Asp.net Mvc 4,Jqgrid,我有一些要求,比如,我需要创建一个jquery网格。我创建了JQgrid,对于该JQgrid,我需要从controller方法获取一些动态值,该方法可能返回int或string(而不是另一个视图)。当我使用@Url.Action(“method”,“controller”)调用controller方法时.我没有得到值,并且代码部分没有执行 function setrownumJQ() { var rownum = 0; rownum = '@Url.Act

我有一些要求,比如,我需要创建一个jquery网格。我创建了JQgrid,对于该JQgrid,我需要从controller方法获取一些动态值,该方法可能返回int或string(而不是另一个视图)。当我使用@Url.Action(“method”,“controller”)调用controller方法时.我没有得到值,并且代码部分没有执行

    function setrownumJQ() {
        var rownum = 0;
        rownum = '@Url.Action("method", "controller")';
        return rownum;
    }
Method in controller:


int setRowNum()
        {
           var r = 4;
            return r;
        }

注意:此方法将返回一个int值。

您刚刚告诉了URL,但没有调用它。。解决方案是使用jquery的$.ajax并调用动作方法

function setrownumJQ() {
    var rownum = 0;
    var url = '@Url.Action("method", "controller")';
    $.ajax({
        url: url


    }).done(function (data) {
        rownum = data
    });
    return rownum;
}

控制器不应包含除操作之外的任何方法或功能。如果希望将数据从(例如)数据库传递到视图,则应在模型类中编写获取功能,并在页面的操作中传递,如下所示:

public ActionResult index() {
    ViewData["KEY"] = MyValue;
    ...
}

谢谢,现在我可以调用controller方法,但是我无法从中获取值。这里我在controller public中的方法可以看到我的方法。