ASP.NET MVC javascript函数未定义信号器

ASP.NET MVC javascript函数未定义信号器,javascript,jquery,asp.net,asp.net-mvc,signalr,Javascript,Jquery,Asp.net,Asp.net Mvc,Signalr,好的,这是我第一次使用信号器,我能够通过教程使一切工作正常 我现在的问题是,我想用javascript函数调用我的服务器函数,而不需要像教程中那样单击按钮。当我按如下方式尝试时,我得到一个“函数未定义”错误 您的rafraichir()函数的定义范围不正确。这是基本的JavaScript,与信号器无关。让它成为一个类似于augmenterPriorite的函数。感谢您的回答,但问题是我需要定义“refresh”变量,当我将“rafraichir”放在范围之外时,我无法访问它。(我已经更新了代码以

好的,这是我第一次使用信号器,我能够通过教程使一切工作正常

我现在的问题是,我想用javascript函数调用我的服务器函数,而不需要像教程中那样单击按钮。当我按如下方式尝试时,我得到一个“函数未定义”错误


您的
rafraichir()
函数的定义范围不正确。这是基本的JavaScript,与信号器无关。让它成为一个类似于
augmenterPriorite
的函数。感谢您的回答,但问题是我需要定义“refresh”变量,当我将“rafraichir”放在范围之外时,我无法访问它。(我已经更新了代码以显示它)看起来在成功函数中,您应该调用
refresh.client.refreshPage()
而不是
refraichir()
,以增加@mason的答案:使其成为一个全局函数,就像
augmenterPriorite
一样。换言之,不要在另一个函数中定义它(或者是在两个函数中定义它),而是在页面(窗口)级别定义它。像@mason所说的那样,使
刷新
变量全局(通过删除
var
)并在
augmenterPriorite()
相同的范围内定义
rafraichir()
!谢谢你们抽出时间
$(function () {
        // Reference the auto-generated proxy for the hub.  
        var refresh = $.connection.refreshHub;
        // Create a function that the hub can call back.
        refresh.client.refreshPage = function () {
            // Refresh page
            location.reload();
        };     
        // Start the connection.
        $.connection.hub.start().done(function () {
            function rafraichir() {
                // Call the Refresh method on the hub. 
                refresh.server.refresh();
            };
        });
});

function augmenterPriorite(ordre, prio) {
    $.ajax({
        url: '@Url.Action("AugmenterPriorite", "Home", new { area = "Qualite" })',
        data: { of: ordre, priorite: prio },
        type: 'POST',
        cache: false,
        success: function (data) {
            rafraichir(); //FUNCTION UNDEFINED PROBLEM
        }
    });
}