Fer*_*min 35 asp.net jquery web-services asmx
我试图通过jQuery从客户端调用服务器端方法.我的代码如下:
服务器端:
using System.Web.Services;
[WebMethod()]
//[ScriptMethod()]
public static void SendMessage(string subject, string message, string messageId, string pupilId)
{
//Send message
}
Run Code Online (Sandbox Code Playgroud)
客户端:
$("#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;
});
Run Code Online (Sandbox Code Playgroud)
我在服务器端SendMessage方法上添加了一个断点,但它从来没有打过它,但是当我运行代码时,会调用jQuery成功方法.可能导致这种情况的原因是什么?`
Dav*_*ard 37
要调用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.
}
});
Run Code Online (Sandbox Code Playgroud)
有关为何需要的详细信息,请参阅此帖子:http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/
编辑:扩展名不会更改为.asmx但仍为.aspx.
| 归档时间: |
|
| 查看次数: |
89490 次 |
| 最近记录: |