。
我已经做了一段时间了,我正试图摆脱生锈。
我正在尝试使用VS2010在ASP.NET中设置AJAX结构。
我有一个类似于此的JQuery表单提交(为了示例目的而大大简化):
function FormSubmit () {
$.post('SomeHandler.asmx/SomeFunction',
$("#form1").serialize(),
function(data) {some data handler}
);
}
我的“SomeHandler.asmx / SomeFunction”是一个C#函数,它接收我的表单数据并对其进行处理。
据我所知,SomeHandler.asmx假设XML反序列化,但JQuery将其序列化为HTML编码字符串,而不是XML。
我想用一个类比,一方讲英语,但另一方希望听到法语。
我如何解决这个问题? (例如,假设我的表单有一个文本字段 - 我们称之为“txtField”,还有一个下拉列表 - 让我们称之为“lstDropDown”。)
提前感谢您的帮助!
答案 0 :(得分:1)
在您的asmx文件中,请确保在接受并使用json响应的Web方法上使用以下属性标志:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string SomeWebMethod()
{
//blah
}
此外,请确保Web服务类具有以下属性标志:
[System.Web.Script.Services.ScriptService]
public class MyWebService : System.Web.Services.WebService
{
...
}
最后一件事:如果您在客户端序列化数据,则需要使用以下ajax设置:
$.ajaxSetup({ contentType: "application/json; charset=utf-8" });