簡體   English   中英

如何在C#中反序列化在JQuery中序列化的內容?

[英]How to deserialize in C# something that was serialized in JQuery?

自從我這樣做已經有一段時間了,我正在努力擺脫鐵銹。

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

在此先感謝您的幫助!

在您的asmx文件中,請確保您在接受和響應json的網絡方法上使用以下屬性標志:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string SomeWebMethod() 
{
  //blah
}

另外,請確保Web服務類具有follow屬性標志:

[System.Web.Script.Services.ScriptService]
public class MyWebService : System.Web.Services.WebService
{
...
}

最后一件事:如果要在客戶端上序列化數據,則需要使用以下ajax設置:

 $.ajaxSetup({ contentType: "application/json; charset=utf-8" });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM