1

我在将 XML 数据从 Ajax 发送到 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 变量为空?

4

1 回答 1

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,如本博文中所述。

于 2013-04-25T19:21:08.250 回答