2017-06-08 49 views
1

我發送XML/MATHML在我的AJAX請求數據,並在C#中的服務器端,我得到這種文字:將類似url的字符串轉換爲C#中的xml字符串?

%3Cmath%3E%0A%20%20%20%20%3Cmrow%3E%0A%20%20%20%20%20%20%20%20%3Cmsub%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cmi%3Ex%3C%2Fmi%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cmtext%3E12%3C%2Fmtext%3E%0A%20%20%20%20%20%20%20%20%3C%2Fmsub%3E%0A%20%20%20%20%20%20%20%20 

所以,基本上它是XML,但是XML基本字符被轉換到URL一樣的人物,%20,%3E,0A%等等

我有這樣的POST方法在我的API控制器:

[HttpPost] 
public HttpResponseMessage PostUpload(HttpRequestMessage req) 
{ 
    string jsonContent = req.Content.ReadAsStringAsync().Result; 
    Utility.Utility.WriteLineToConsole("json data post: " + jsonContent); 

    return Request.CreateResponse(HttpStatusCode.OK, jsonContent); 
} 

效用函數WriteLineToConsole()打印jsonContent和頂部結果中的文本。

我該如何將上面的字符串轉換爲xml,即將url-like字符替換爲xml字符?

注:我使用MVC 4/C#,jQuery AJAX,並且contentType和dataType都是json類型。我希望我的數據對象要像

data:{mathml: "<math>...</math>"} 
+1

這看起來像它的'urlencode'd。嘗試'Server.Decode(thatString);'或'HttpUtility.UrlDecode(thatString)'或'Uri.UnescapeDataString(thatString)' – Kyle

+1

似乎沒有在ajax調用中正確設置contentType。檢查[這](https://stackoverflow.com/questions/17535872/http-post-xml-data-in-c-sharp) –

+1

順便說一句,爲什麼你設置它爲JSON時,你顯然發送XML?似乎'application/xml; charset = UTF-8'更合適。 – Kyle

回答

0
HttpUtility.UrlDecode(thatString) 

做的工作