2009-08-14 7 views
4

Lorsque vous demandez http://someserver.com/user/btyndall Je voudrais revenir HTML Lorsque vous demandez http://someserver.com/user/btyndall?format=xml Je voudrais revenir représentation XML de mon modèleASP.NET MVC - données De retour au format HTML ou XML

J'ai téléchargé MvcContrib . (Je ne peux pas croire que XmlResult ne fait pas partie du framework de base)

Quelle est la bonne façon de gérer la requête dans le contrôleur. Avec JSON vous avez un JsonResult et Json(). Je vois un XmlResult mais pas une méthode Xml()

Je pourrais utiliser un peu de conseils. Ce que j'ai jusqu'à présent (qui est nada):

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

MISE À JOUR:
voir tous les commentaires

+0

Je publierai bientôt quelque chose sur le site ASP.NET CodePlex http://aspnet.codeplex.com/ qui résoudra ce scénario. Restez à l'écoute. :) – Haacked

+0

J'ai besoin de quelque chose pour un prototype la semaine prochaine. Quelle stratégie devrais-je utiliser en attendant, Phil? – BuddyJoe

Répondre

0

Ce post montre une belle façon de réaliser ce que vous recherchez.

+0

Essayer cette méthode maintenant. Merci. Va poster dans un petit moment. – BuddyJoe

+0

Le lien ne fonctionne plus –

0

Qu'en est-il juste de revenir deux vues différentes?

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

Créez ensuite deux vues. 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> 

et 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

Je vois où cela m'aiderait à sérialiser en XML, mais que se passe-t-il si je veux faire abstraction de XML pour la méthode Create()? On dirait que j'écris plus de code ici. – BuddyJoe

+0

Utiliser [AcceptVerbs (HttpVerbs.Post)] public ActionResult Créer (XDocument xml) {} pour accepter un article XML –

Questions connexes