2013-10-22 39 views
1

這裏剝奪睡眠實驗的一點..我怎麼會重定向從RenderMvcController到UmbracoApiController

我一直在Backbone.js的最近在玩周圍,但是不知道是否有以客戶端結合的方式使用umbraco的服務器端路由進行路由。我認爲它們的方式不是在路由表中爲模板名稱返回典型的RenderMvcController ActionResult,而是控制器將重定向到UmbracoApiController以返回json - 實際上將路由選擇轉移到模板到骨幹客戶端。

這是我卡住的地方,重定向到UmbracoApiController - 希望有人可以看到我錯過了什麼。

乾杯!

編輯:忘記了我收到的錯誤消息。

路由表中沒有路由與提供的值匹配。

public class HomeController : Umbraco.Web.Mvc.RenderMvcController 
{ 
    [HttpGet] 
    public ActionResult Index() 
    { 
     return RedirectToAction("GetAllProducts", "ProductsApi"); 
    } 
} 
public class ProductsApiController : Umbraco.Web.WebApi.UmbracoApiController 
{ 
    public IEnumerable<string> GetAllProducts() 
    { 
     return new[] { "Table", "Chair", "Desk", "Computer", "Beer fridge" }; 
    } 
} 


public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "Umbraco/Api/{controller}/{action}/", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

     var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml"); 
     config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType); 
    } 
} 

public class MvcApplication : System.Web.HttpApplication 
{ 
    protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 

     WebApiConfig.Register(GlobalConfiguration.Configuration); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
    } 
} 

回答

0

我通過擴展PluginController而不是UmbracoApiController,該方法here以下工作類似的事情。

相關問題