2012-11-24 180 views
1

我有問題將Ajax數據發送到ASP.NET MVC。數據未發送。 Ajax代碼:從Ajax將XML數據發佈到ASP.NET MVC時遇到問題

`function SendXmlToServer(ServerXml) { 
     $.ajax({ url: "/Home/XmlData", 
      type: "POST", 
      processData: false, 
      data: { ResXml: ServerXml }, dataType: "xml", 
      success: function() { 
       alert("Successful"); 
       return false; 
      } 
     }) 
    }` 

ASP.NET MVC代碼:

[HttpPost] 
    public ActionResult XmlData(string ResXml) 
    { 
     return null; 
    } 

爲什麼ResXml變量都是空?

回答

0

默認的模型綁定不起作用processData設置爲false。如果ServerXml是XML字符串,刪除這應該使其工作:

function SendXmlToServer(ServerXml) { 
    $.ajax({ url: "/Home/XmlData", 
     type: "POST", 
     data: { ResXml: ServerXml }, dataType: "xml", 
     success: function() { 
      alert("Successful"); 
      return false; 
     } 
    }); 
} 

您還可以到ValidateInput屬性添加到您的操作方法,因爲通常「HTML標記」是不允許的:

[HttpPost] 
[ValidateInput(false)] 
public ActionResult XmlData(string ResXml) 
{ 
    return null; 
} 

或者,您可以使用自定義模型綁定來無縫地反序列化XML,如this blog post中所述。

相關問題