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

时间:2013-08-23 09:50:14

标签: jquery asp.net-mvc-4 jqgrid

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

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


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

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

2 个答案:

答案 0 :(得分:1)

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

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


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

答案 1 :(得分:0)

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

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