Как передать XML как POST в ActionResult в ASP MVC.NET

Попробуйте повышение незаказанный классы.

10
задан Freddy 10 July 2009 в 20:41
поделиться

4 ответа

Это можно сделать с помощью атрибута ActionFilterAttribute. Фильтры действий в основном пересекают запрос до или после результата действия. Поэтому я только что создал атрибут фильтра настраиваемого действия для результата действия POST. Вот что я сделал:

7
ответ дан 3 December 2019 в 15:22
поделиться

Почему они не могут передать xml в виде строки в сообщении формы?

Пример:

public ActionResult SendMeXml(string xml)
{
  //Parse into a XDocument or something else if you want, and return whatever you want.
  XDocument xmlDocument = XDocument.Parse(xml);

  return View();
}

Вы можете создать сообщение формы и отправить его в одном поле формы.

3
ответ дан 3 December 2019 в 15:22
поделиться

Отлично!,

Какой объект у меня в методе контроллера для управления Xml?

Я использую этот способ:

В actionFilter я заполняю модель :

        .
        .

        string xmlBody = sb.ToString();

        filterContext.Controller.ViewData.Model = xmlBody;

А в моем методе контроллера я получаю модель как:

        string xmlUserResult = ViewData.Model as string;

        XmlSerializer ser = new XmlSerializer(typeof(UserDTO));
        StringReader stringReader = new StringReader(xmlUserResult);
        XmlTextReader xmlReader = new XmlTextReader(stringReader);
        UserDTO userToUpdate = ser.Deserialize(xmlReader) as UserDTO;
        xmlReader.Close();
        stringReader.Close();

Это правильная реализация?

Спасибо.

1
ответ дан 3 December 2019 в 15:22
поделиться

Я знаю, что вы можете создать фабрику нестандартных поставщиков значений. Это позволит вам также проверять свои модели, когда они публикуются, прежде чем пытаться их сохранить. Фил Хаак опубликовал в блоге сообщение о JSON-версии той же концепции. Единственная проблема в том, что я не знаю, как реализовать нечто подобное для XML.

3
ответ дан 3 December 2019 в 15:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: