使用PageMethods从Javascript调用C#代码并不起作用

时间:2015-05-28 14:32:38

标签: javascript c# asp.net webmethod pagemethods

我试图通过我的javascript调用我的C#Web方法'输入按键'使用PageMethods。

ASP:

<input id="new-chat-text-input" type="text" placeholder="Your Message Here..." onkeydown="chatreply(event)">

使用Javascript:

function chatreply() {
  var inputtext = document.getElementById("new-chat-text-input");
  var x = event.keyCode;
  if (x == 13) {
      alert("The process came here"); //Gets triggered successfully
      var chatresult= PageMethods.SendChat(inputtext)
      alert(chatresult);
  }
}

代码背后:

[WebMethod]
public string SendChat(string input)
{
      return "Hey there";
}

基本上尝试从文本框中获取输入文本,将其发送到后面代码中的方法并提醒响应。我基本上得到一个空警报。我做错了什么?

1 个答案:

答案 0 :(得分:2)

我对PageMethods不太熟悉,但是从快速阅读中看到的内容,它会在后台执行异步AJAX调用时立即返回。您必须提供成功和错误的回调。成功处理程序应显示结果。

function aichatreply() {
    var inputtext = document.getElementById("new-chat-text-input");
    var x = event.keyCode;
    if (x == 13) {
        alert("The process came here"); //Gets triggered successfully
        PageMethods.SendChat(inputtext, onSuccess, onFailure);
        //This line will execute immediately, not waiting for SendChat to finish
    }
}

function onSuccess(result) {
    alert(result);
}

function onFailure(result) {
    alert("Failed!");
}