jQuery函数,每10秒mvc razor从客户端调用控制器方法

时间:2014-10-08 08:08:15

标签: javascript jquery asp.net-mvc asp.net-mvc-4 razor

我遇到了一个问题,我无法解决因为我对jQuery / Java语法的不完全了解,但是哪个问题可以由比我更有经验的人快速解决。

我想构建一个在客户端运行的简单脚本,每隔10秒调用一次控制器方法(方法负责从消息服务器接收数据)

我到目前为止所做的一切都是搜索网络,而且我读的更多,我感到困惑..

基本需求是

  • 使用jQuery(有一个提示说它是最佳选择)
  • 每10秒调用一次方法
我要打电话的方法是:" callGetMessagesFromClientSide"它位于CoordinatorsController

    <script src="~/Scripts/jquery-2.1.1.js" type="text/javascript"></script>
    <script>
    var callETs = setInterval(function () { callMessages() }, 10000);

    function callMessages()
    {
         var url = @Url.Action("callGetMessagesFromClientSide", "Coordinators")
         $.get(url);
    }
    </script>

2 个答案:

答案 0 :(得分:1)

您需要将生成的URL包装在引号中。

使用

var url = '@Url.Action("callGetMessagesFromClientSide", "Coordinators")';

而不是

var url = @Url.Action("callGetMessagesFromClientSide", "Coordinators")

其余的代码应该有效。

function callMessages() {
    var url = '@Url.Action("callGetMessagesFromClientSide", "Coordinators")';
    $.get(url, function(response) {
       //Perform some operation in the callback if require 
    });
}

答案 1 :(得分:1)

你大部分时间都在那里,试试这个:

function callMessages()
{
     var url = '@Url.Action("callGetMessagesFromClientSide", "Coordinators")';
     var update = $.get(url);
     update.done(function(response) {
         //handle server response
     });
}

取决于服务器返回的内容(例如JSON,HTML等)取决于您如何处理它