Was ist der einfachste Weg, unterschiedliche Inhaltstypen auf der Verlängerung in der URL-Basis zurückzukehren?

StackOverflow https://stackoverflow.com/questions/1639261

  •  08-07-2019
  •  | 
  •  

Frage

Ich möchte in der Lage sein, die Erweiterung einer URL zu ändern und das Modell in einem anderen Format zu empfangen.

z. wenn

/products/list

gibt eine HTML-Seite eine Liste von Produkten enthält, dann

/products/list.json

würde sie in einer json Liste zurück.

Hinweis: Ich mag die Einfachheit der ASP.NET MVC REST SDK , bedarf es nur etwa 5 Zeilen Code es einzuhaken in, aber das Format wird als Abfragestring spezifiziert Parameter dh /products/list?format=json das ist nicht das, was ich will, ich könnte diesen Code optimieren, wenn es keine anderen Optionen sind, aber ich will nicht das Rad neu erfinden!

War es hilfreich?

Lösung

Ich schrieb einen Blog-Post, die ein mögliches Beispiel zeigt. Es ist ein bisschen kompliziert, aber vielleicht für Ihre Bedürfnisse arbeiten.

http: // Haacked .com / Archiv / 2009/01/06 / Handling-Formate-based-on-url-extension.aspx

Andere Tipps

Es soll möglich sein, nur zu verwenden Routen in Verbindung mit dem Rest sdk

Wenn Sie die Flexibilität haben, Apache oder etwas ähnliches vor Ihrem Service fallen zu lassen, können Sie immer verwenden mod_rewrite eine externe http://products/list.json in http://products/list?format=json neu zu schreiben, das Ihr Rahmen leichter machen kann.

Anstelle von "list.json", könnten Sie wählen "-Liste / json" und eine Route verwenden wie

{Controller} / {Aktion} / {id}

Dann würde ProductController.List genannt werden, mit einem ID-Parameter von "json". Die .List () -Aktion dann entscheiden, ob eine HTML-Ansicht oder JSON Inhalt zurückzukehren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top