将XML数据发送到C#控制器

将XML数据发送到C#控制器,c#,ajax,xml,C#,Ajax,Xml,我想将xml数据发送到c#controller 我的xml数据是: var saveData = '<xml xmlns="http://www.w3.org/1999/xhtml"><block type="animal" id="xG;UTYXlRg!0Mf[hzwUY" deletable="false" x="601" y="32"><mutation animal="4"></mutation><field name="LEGS"&

我想将xml数据发送到c#controller

我的xml数据是:

var saveData = '<xml xmlns="http://www.w3.org/1999/xhtml"><block type="animal" id="xG;UTYXlRg!0Mf[hzwUY" deletable="false" x="601" y="32"><mutation animal="4"></mutation><field name="LEGS">4</field><value name="PIC"><block type="picture" id="Ur(^~L/jC/yu!u%f%I(Z" deletable="false"><mutation animal="4"></mutation></block></value><statement name="TRAITS"><block type="trait" id="u8)T)6wBbE^m.%=ILpEe" deletable="false"><mutation animal="4" trait="1"></mutation><next><block type="trait" id="H@d0NIKR1u0@@(t?7a6Dw" deletable="false"><mutation animal="4" trait="2"></mutation></block></next></block></statement></block><block type="animal" id="d@Q?[m;zlWRWA,5X5M/a" deletable="false" x="891" y="36"><mutation animal="1"></mutation><field name="LEGS">1</field><value name="PIC"><block type="picture" id="w!UiV*|:=y5n8`f@M!3j" deletable="false"><mutation animal="1"></mutation></block></value><statement name="TRAITS"><block type="trait" id="zQp:H!fm::@@aNFn`4eEd" deletable="false"><mutation animal="1" trait="1"></mutation><next><block type="trait" id="4wDt7k=~:}J[un#^rhal" deletable="false"><mutation animal="1" trait="2"></mutation></block></next></block></statement></block><block type="animal" id="i8kBocDwY3|Q5oy}#K/0" deletable="false" x="595" y="244"><mutation animal="2"></mutation><field name="LEGS">2</field><value name="PIC"><block type="picture" id="v6/SG@D#WfS*kGU?h4H@@" deletable="false"><mutation animal="2"></mutation></block></value><statement name="TRAITS"><block type="trait" id="C^+-{YCH;}19X6TuW=NW" deletable="false"><mutation animal="2" trait="2"></mutation><next><block type="trait" id="zuTZ?E^YtPgLV8Otz!W=" deletable="false"><mutation animal="2" trait="1"></mutation></block></next></block></statement></block><block type="animal" id="P)KN^:PPLG0*DYS==b_i" deletable="false" x="913" y="270"><mutation animal="3"></mutation><field name="LEGS">3</field><value name="PIC"><block type="picture" id="~kZ?pV,{zka*L6p^*K*j" deletable="false"><mutation animal="3"></mutation></block></value><statement name="TRAITS"><block type="trait" id="nLR]),jTS*m-.8*7(p|a" deletable="false"><mutation animal="3" trait="2"></mutation><next><block type="trait" id="*UtIP}fT=7@b19ssf{72" deletable="false"><mutation animal="3" trait="1"></mutation></block></next></block></statement></block></xml>'
但我在控制器中得到了
null


请帮帮我吧

我想这里的问题是您实际上发布的是一个字符串,而不是XML。 也许可以试试这个:

$.ajax({
    type: "POST",
    url: "../Home/XmlData",
    data: saveData, 
    contentType: 'text/plain'
});
当然,您需要在控制器端解析XML,我认为您的控制器应该如下所示:

[HttpPost] 
public ActionResult XmlData([FromBody]string SaveData) 
{ 
    //...Do whatever is needed.
} 
否则,它将期望“saveData”字符串成为url的一部分。

我已经得到了答案

通过这样做,它将发布XML

processData: false,
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ SaveData: saveData })

数据未在此处发布。。。。。假设它是一个简单的xml数据,xml不是JSON。2) 显示您的控制器[HttpPost]公共操作结果XmlData(string SaveData){return Json('1',JsonRequestBehavior.AllowGet);}我也尝试过这种方法contentType:“text/xml”,dataType:“xml”,contentType应该是
application/Json
。您的控制器需要一个字符串,但您正在传递一个具有“SaveData”属性的对象。如果[FromBody]是呢?它通知MVC的路由部分“SaveData”变量来自POST正文,而不是url/querystring/等的一部分。
processData: false,
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ SaveData: saveData })