我想将xml数据发送到c#控制器。
我的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>'
我是这样发送的
$.ajax({
url: "../Home/XmlData",
type: "POST",
contentType: "text/xml",
dataType: "xml",
async: false,
data: { "SaveData": saveData },
success: function (result) {
},
error: function (e, jqxhr, settings, exception) {
}
})
但是我在控制器中获得了null
。
请帮助我
答案 0 :(得分:1)
我认为这里的问题是您实际上是在发布 string 而不是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的一部分。
答案 1 :(得分:-1)
我知道了。
这样做,它将发布XML。
processData: false,
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ SaveData: saveData })