通过jQuery调用ASP.NET服务器端方法

前端之家收集整理的这篇文章主要介绍了通过jQuery调用ASP.NET服务器端方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图从客户端通过jQuery调用服务器端的方法。我的代码如下:

服务器端:

using System.Web.Services;
    [WebMethod()]
    //[ScriptMethod()]
    public static void SendMessage(string subject,string message,string messageId,string pupilId)
    {
        //Send message
    }

客户端:

$("#btnSendMessage").live("click",function(){
  var subject = $("#tbSubject").val();
  var message = $("#tbMessage").val();
  var messageId = $("#hdnMessageId").val();
  var pupilId = $("#hdnPupilId").val();

  $.ajax({
      type: "POST",url: "./MessagePopup.aspx/SendMessage",data: ("subject=" + subject + "&message=" + message + "&messageId=" + messageId + "&pupilId=" + pupilId),error: function(XMLHttpRequest,textStatus,errorThrown){
          alert(textStatus);
      },success: function(result){
         alert("success");
      }
   });
   return false;
});

我在服务器端的SendMessage方法添加了一个断点,但它从来没有碰到它,但是当我运行代码时,调用jQuery的成功方法。什么可能导致这??

解决方法

调用ASP.NET AJAX“ScriptServices”和页面方法,您需要使用完整的$ .ajax()语法:
$.ajax({
  type: "POST",url: "MessagePopup.aspx/SendMessage",data: "{subject:'" + subject + "',message:'" + message + ",messageId:'" + messageId + "',pupilId:'" + pupilId +"'}",contentType: "application/json; charset=utf-8",dataType: "json",success: function(msg) {
    // Do something interesting here.
  }
});

看到这个职位有关为什么必要的详细信息:http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/

编辑:扩展名不会更改为.asmx,但仍保留.aspx。

原文链接:https://www.f2er.com/jquery/184846.html

猜你在找的jQuery相关文章