0

. .

自从我这样做以来已经有一段时间了,我正在努力摆脱生锈。

我正在尝试使用 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”。)

在此先感谢您的帮助!

4

1 回答 1

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" });
于 2012-12-07T16:14:36.827 回答