2009-08-14 5 views
4

При запросе http://someserver.com/user/btyndall Я хотел бы вернуться HTML При запросе http://someserver.com/user/btyndall?format=xml Я хотел бы вернуть представление XML моей моделиASP.NET MVC - Возвращение данных в виде HTML или XML

Я скачал MvcContrib , (Не могу поверить, что XmlResult не является частью основной структуры)

Каков правильный способ обработки запроса в контроллере. С JSON у вас есть JsonResult и Json(). Я вижу XmlResult, но не метод Xml()

Я мог бы использовать небольшое руководство. То, что я до сих пор (что нада):

public ActionResult Details(int id) 
{ 
    return View(); 
} 

UPDATE:
посмотреть все комментарии

+0

Я скоро отправлю сообщение на сайт ASP.NET CodePlex http://aspnet.codeplex.com/, который рассмотрит этот сценарий. Будьте на связи. :) – Haacked

+0

На следующей неделе мне нужно что-то для прототипа. Какую стратегию я должен использовать в то же время, Фил? – BuddyJoe

ответ

0

Это post показывает хороший способ достижения того, что вы ищете.

+0

Попробуйте этот метод сейчас. Благодарю. Отправится обратно через некоторое время. – BuddyJoe

+0

Ссылка больше не работает –

0

Как насчет просто возвращаются две различные точки зрения?

public ActionResult Details(int id, string format) { 
    if (!String.IsNullOrEmpty(format) && format == "xml") { 
    return View("MyView_Xml"); 
    } 
    else { 
    return View("MyView_Html"); 
    } 
} 

Затем создайте два вида. MyView_Xml:

<%@ Page Inherits="System.Web.Mvc.ViewPage<Customer>" ContentType="text/xml"> 
<?xml version="1.0" encoding="utf-8" ?> 
<customer> 
    <first_name><%= Model.FirstName %></first_name> 
    <last_name><%= Model.FirstName %></last_name> 
</customer> 

и MyView_Html

<%@ Page Inherits="System.Web.Mvc.ViewPage<Customer>"> 
<html> 
    <body> 
    <div><label>First Name:</label><%= Mode.FirstName %></div> 
    <div><label>Last Name:</label><%= Mode.LastName %></div> 
    </body> 
</html> 
+0

Я вижу, где это поможет мне сериализоваться в XML, но что, если я хотел бы исключить XML для метода Create()? Похоже, я почеркнул больше кода здесь. – BuddyJoe

+0

Используйте [AcceptVerbs (HttpVerbs.Post)] public ActionResult Create (XDocument xml) {}, чтобы принять сообщение XML –

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