2013-08-23 55 views
0

我有一些需求,我需要创建一个jQuery网格。我创建了JQgrid,对于那个JQgrid我需要从控制器方法中获取一些动态值该方法可能会返回int或字符串(而不是另一个视图)。当我使用@ Url.Action(“method”,“controller”)调用控制器方法时,我没有获得价值,并且代码部分未执行。我怎样才能从视图调用控制器方法

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


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

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

回答

1

你刚才说的网址,但你不把它称为..解决方案是使用jquery的阿贾克斯$和调用操作方法

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


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

感谢现在我能够调用控制器的方法,但我无法从中获得价值。在公共控制器中的我的方法请参阅我的方法。 – Prathiesh

0

你的控制器不应该包含除了动作的任何方法或功能。如果您想从(例如)数据库视图传递数据,您的抓取功能应该在模型类编写,并在你的页面的动作通过如下:

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