2015-10-13 1 views
0

я борюсь Жека размещения XML необработанных данных в мой контроллер WebAPI, переданное значение всегда нуль на стороне контроллера ....Отправка XML необработанные данные всегда нулевой

Вот мой код:

Запрос

Query.support.cors = true; 
     $.ajax({ 
      type: "POST", 
      url: axForm.EndPoint + "api/items/PostXmlData", 
      contentType: "application/xml", 
      data: {xmlData: axForm.QvXmlForm}, 
      async: false, 
      success: function (response) { 
       $('#tab1').append(response); 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       //alert(xhr.responseText); 
      } 
     }); 

    } 
  • метод WebAPI

    [ActionName("PostXmlData")] 
    [System.Web.Http.AcceptVerbs("POST")] 
    [System.Web.Http.HttpPost] 
    public IHttpActionResult PostXmlData([FromBody]string xmlData) 
    { 
        ... 
    } 
    
  • Переданные данные XML:

+0

Попробуйте это, я не отправляю его в качестве ответа, так как я не пробовал это сам. 'public IHttpActionResult PostXmlData() { string xml =" "; if (Request.InputStream! = Null) { var stream = new StreamReader (Request.InputStream); var xml = stream.ReadToEnd(); // xml может быть закодирован, декодировать его перед использованием. } } ' – din

+0

Есть ли причина, по которой вы хотите« xmlData »как строку, а не де-сериализованный объект? Работа с объектами с сильными типами намного проще, чем использование строк. – BMac

ответ

0

я решил эту проблему. Для этого вызова ajax я использую простой тип, а не сложный тип. Ссылка ниже помогла мне:

http://www.asp.net/web-api/overview/advanced/sending-html-form-data,-part-1

Часть данных вызова Ajax должна быть как то, когда дело с простыми типами:

data: {"": axForm.QvXmlForm} 

Я оценил вашу помощь.

Patric

Смежные вопросы