2012-11-24 128 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中所述。

相关问题