HTML/JavaScriptクライアント側からASP.NET MVCサーバー側にXML文字列を渡そうとしています。問題は、XML文字列がサーバーに到達しないのに対して、通常の「非XML」文字列は正常に転送されることです。 XMLがなぜAJAX経由でMVCコントローラに渡されていないのですか?
クライアント側で関連するJavaScriptコード
は以下の通りです:function TransferXmlDataToServer() {
var sXml = "<Tag>This is an XML test string.</Tag>"
$.ajax({
type: "POST",
url: '@Url.Action("TransferXMLData", "Home")',
data: { sInputXml: sXml },
dataType: "json",
success: function(sReturnValue) {
alert("Value returned from server is: " + sReturnValue);
},
error: function() {
alert("There was an error on the server side");
}
})
};
これは、サーバー側でのMVCホームコントローラ内の対応する関数です:
public JsonResult TransferXMLData(string sInputXml) {
// The arguments' name must match those used in the View's Ajax call
return Json("Success");
}
TransferXmlDataToServerがクライアント側から呼び出された場合、サーバー側でエラーが発生しましたメッセージが表示されます。サーバー側のTransferXMLDataには、呼び出されていないデバッグ用の印刷ステートメントがいくつか置かれており、この関数には入力されていないことが示されています。一方
、sXml = "<Tag>This is an XML test string.</Tag>"
が
sXml = "This is a test string."
すべて期待どおりに動作に置き換えられます。
その他の注意事項:これは、IE11とエッジを試みた
- 。
- XMLストリングをSerialized Jsonに変換してからサーバーに送信しようとしましたが、無駄です。
私が間違っていることを知っていただければ幸いです。
ありがとうございます。