【问题标题】:Jquery's Ajax Property For Asp.Net 2.0用于 Asp.Net 2.0 的 Jquery 的 Ajax 属性
【发布时间】:2008-11-15 08:21:57
【问题描述】:
我总是在博客中看到这样的代码:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebService.asmx/HelloWorld",
data: "{}",
dataType: "json",
success: function(msg) {
alert(msg.d);
}
});
但我认为这仅适用于 asp.net 3.5。我无法使用 2.0 运行它。如何在我的应用程序中使用这些代码?
【问题讨论】:
标签:
jquery
ajax
asp.net-ajax
asp.net-2.0
【解决方案1】:
您需要将此属性添加到您的网络服务器类
[System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
这个属性给你的函数
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
从技术上讲,您不需要指定响应格式,因为它会根据
到您在请求中指定的格式。而且您必须在请求中指定格式。
问候
克
【解决方案2】:
如果您使用 jQuery 连接到服务器,则您的 HTML 中不需要 ScriptManager。
我认为你代码的其他部分是正确的。只需删除ScriptManager。
【解决方案3】:
我已经知道这篇文章,但它帮不了我。
在我的示例应用中,我使用以下代码:
我的 Jquery 代码:
$(document).ready(function() {
$('#clKaydet').click(function() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebService.asmx/HelloWorld",
data: "{}",
dataType: "json",
success: function(msg) {
alert(msg);
}
});
});
});
我的 HTML 代码:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />
<div>
<input type="button" id="clKaydet" runat="server" value="Kayıt" onclick="Kayit()" />
</div>
</div>
</form>
我的网络服务代码:
<WebMethod()> _
Public Function HelloWorld() As String
Dim sText As String = "Hello"
Return sText
End Function
有什么错误吗?
【解决方案4】:
我们使用 jQuery 进行所有 DOM 操作,但在将数据发送回服务器时,我们使用 ASP.Net AJAX 来利用自动生成的代理类
让生活变得真正简单!
【解决方案5】:
我认为您缺少的一点是标有 WebMethod 标记的方法会将数据序列化为 XML,而不是 JSON。使用 ASP.NET MVC,您可以本机返回 JSON,但如果您想要将 JSON 用于 WebMethod,您可能需要编写自己的转换器。我建议尝试将 AJAX 调用的数据类型更改为“xml”,看看是否可行。
我还没有将 jquery 用于 AJAX(还),所以我还没有尝试过(还)。
【解决方案6】:
总之,你是不是这么说,我不能直接在 asp.net 2.0 中使用这些代码?