我正在嘗試開發一個RESTful Web服務作爲ASP.NET MVC 3 Web應用程序。 (我知道,我應該使用正確的工具來完成這個工作,在這種情況下,這意味着我應該使用WCF,但是WCF具有太多的抽象層,因此太大而不適合在我的腦海中,這很酷對於一個研究項目,但我想盡我的工作除了我以前試過,現在我認爲,儘管它的大的承諾,WCF很大的時間。希望做的事很簡單:我希望我的Web服務根據HTTP請求中指定的類型(按默認值,JSON)返回其結果作爲XML或JSON。我怎麼做?根據HTTP請求返回XML或JSON
3
A
回答
6
Json操作結果已存在。 MvcContrib具有您可以返回的XML操作結果,或者您可以使用Content(xmlContent,「text/xml」)作爲您的操作結果。
您可以查詢accept頭以確定您想要返回哪個操作結果。只要您的操作方法返回類型ActionResult,它返回的是哪種類型並不重要。
這就是說,一旦你證明了整體概念,有更好的方法來構建你想要做的事情。
2
一個快速解決方案是在你的Controller方法上創建一個可選參數,並以適當的格式返回視圖。
public ActionResult GetFormattedResults(string format)
{
var data = GetResults();
ActionResult result = new JsonResult(data);
switch(format.ToLower())
{
case "xml":
result = new XmlResult(data); // this class doesn't exist in MVC3 you will need to roll your own
case "html":
result = new View(data);
}
return result;
}
你也可以換行格式化功能爲ActionFilter,因此可以重用跨控制器方法的功能。
+2
你應該從方法中刪除「void」 – VJAI
相關問題
- 1. 根據PHP中的請求返回HTML或XML
- 2. WCF如何根據請求決定何時返回SOAP或JSON?
- 3. Ionic2 http請求。 XML到JSON?
- 4. openrasta XML請求返回的JSON
- 5. Jsonresult /請求返回JSON包裹在XML
- 6. 爲什麼JSON請求返回爲XML?
- 7. 根據請求使用@ExceptionHandler動態返回HTTP狀態代碼
- 8. ScriptResource.axd請求返回HTTP 302
- 9. 請求URI返回HTTP 401
- 10. 根據請求返回某個部分
- 11. 創建HTTP請求以返回Json數據
- 12. HTTP發佈請求返回HTML代碼而不是JSON數據
- 13. 如何根據請求參數從servlet返回JSON
- 14. AJAX POST請求不返回JSON數據
- 15. dojo ajax請求不返回json數據
- 16. 無法返回XML請求
- 17. jQuery POST請求 - 返回JSON
- 18. Node.JS https請求返回JSON
- 19. Jetty在http請求中返回400請求絕對URL請求
- 20. PHP XML XML請求返回錯誤(403)
- 21. XML HTTP請求Jodel
- 22. jquery -http後請求在android瀏覽器中返回xml而不是json
- 23. JSON AJAX Http請求
- 24. xml或json HTTP請求最快的方法?
- 25. 如何讀取HTTP POST請求返回的XML?
- 26. 在vb.NET中使用從授權HTTP請求返回的XML
- 27. Java servlets在同步HTTP請求中返回JSON
- 28. WCF JSON返回XML數據!
- 29. POST返回HTTP 400錯誤請求
- 30. Ionic1 Factory $ http請求返回承諾
小增加:Accept Header似乎是正確的,因爲Content-Type是一個響應頭。 –
Doh,我的壞。感謝您指出,我會進行編輯。 –
在這個意義上也有趣:http://www.gethifi.com/blog/browser-rest-http-accept-headers - 仍然,我會去接受頭部的任何是一個Restful API,只使用格式(作爲由Jason提出)在瀏覽器是主要消費者的情況下。 –