ASP.NET MVC javascript函数未定义信号器
好的,这是我第一次使用信号器,我能够通过教程使一切工作正常 我现在的问题是,我想用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”放在范围之外时,我无法访问它。(我已经更新了代码以
您的
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
}
});
}