2016-02-01 29 views
1

正如標題所示,我希望將json作爲默認值返回而不是XML。在正常的Web API中,我可以編輯App_Start/WebApiConfig.cs並添加以下行,但無法找到在Umbraco中編輯配置的位置。從Umbraco API控制器返回默認的json

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); 

我不wan't我的方法返回JsonResult實現這一目標。

+1

您可以設置一套'內容類型:「應用/ json''和'接受:」應用程序/ json'檢索結果JSON代替xml – Tinwor

+0

@Tinwor是的,我知道,但我想在默認情況下在我的API「text/html」中獲得json。 – Ogglas

回答

3

我看了第一個類似的解決方案@sebastiaan,但決定改寫「ApplicationStarting」。

public class CustomApplicationEventHandler : ApplicationEventHandler 
{ 
    protected override void ApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) 
    { 
     GlobalConfiguration.Configure(WebApiConfig.Register); 
    } 
} 

而且WebApiConfig類:

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); 
    } 
} 
2

您可以創建自定義的global.asax.cs像這樣:

using System; 
using System.Net.Http.Headers; 
using System.Web.Http; 
using Umbraco.Web; 

namespace MyNamespace 
{ 
    public class CustomGlobal : UmbracoApplication 
    { 
     private void application_PreRequestHandlerExecute(object sender, EventArgs e) 
     { 
      var formatters = GlobalConfiguration.Configuration.Formatters; 
      formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); 
     } 
    } 
} 

更新您的Global.asax如下然後,指向您CustomGlobal

<%@ Application Inherits="MyCustomGlobal" Language="C#" %>