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);
}
}