2012-11-24 4 views
1

XML 데이터 fron Ajax를 ASP.NET MVC로 보내는데 문제가 있습니다. 데이터가 전송되지 않습니다. Ajax 코드 :Ajax에서 ASP.NET MVC에 XML 데이터를 게시 할 때 문제가 발생했습니다.

`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 변수가 null이있다?

답변

0

processDatafalse으로 설정하면 기본 모델 바인딩이 작동하지 않습니다. 당신은 또한 당신의 행동 방식에 ValidateInput 속성을 추가해야합니다

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

, 일반적으로 "HTML 태그"가 허용되지 않기 때문에 : ServerXml 경우 작동해야이 제거, XML의 문자열입니다

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

this blog post에 설명 된대로 사용자 지정 모델 바인딩을 사용하여 XML을 완벽하게 deserialize 할 수 있습니다.

관련 문제