2009-08-14 4 views
4

Wenn http://someserver.com/user/btyndall anfordernden Ich möchte HTML zurückkehren Wenn http://someserver.com/user/btyndall?format=xml anfordernden Ich möchte XML-Darstellung meines Modells zurückzukehrenASP.NET MVC - Zurückgeben von Daten als HTML oder XML

I MvcContrib heruntergeladen haben . (Ich kann nicht glauben, dass XmlResult ist nicht Teil des Kernrahmens)

Was den richtigen Weg ist, um die Anforderung in der Steuerung zu handhaben. Mit JSON haben Sie ein JsonResult und Json(). Ich sehe eine XmlResult aber kein XML() -Methode

ich ein wenig Anleitung nutzen könnten. Was ich bisher haben (was nada):

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

UPDATE:
sehen alle Kommentare

+0

Ich werde bald etwas auf der ASP.NET-CodePlex-Website http://aspnet.codeplex.com/ veröffentlichen, die dieses Szenario anspricht. Bleib dran. :) – Haacked

+0

Ich brauche nächste Woche etwas für einen Prototypen. Welche Strategie sollte ich in der Zwischenzeit verwenden, Phil? – BuddyJoe

Antwort

0

Diese post zeigt eine schöne Art und Weise zu erreichen, was Sie suchen.

+0

Jetzt diese Methode versuchen. Vielen Dank. Wird in Kürze zurückschreiben. – BuddyJoe

+0

Link funktioniert nicht mehr –

0

Was ist nur zwei verschiedene Ansichten der Rückkehr?

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

Dann erstellen Sie zwei Ansichten. 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> 

und 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

Ich sehe, wo dies mir helfen würde, in XML zu serialisieren, aber was, wenn ich XML für die Create() Methode ausschließen wollte? Scheint so, als würde ich hier mehr Code schreiben. – BuddyJoe

+0

Verwenden Sie [AcceptVerbs (HttpVerbs.Post)] public ActionResult Erstellen (XDocument xml) {}, um einen XML-Post zu akzeptieren –