Kentico 11 customapi MapHttpRoute
Kentico 11 customapi MapHttpRoute
我正在寻找 Kentico 11 中的解决方案来添加我们自定义的映射 API:
GlobalConfiguration.Configuration.Routes.MapHttpRoute ("customapi", "customapi / {controller} / {id}", new {id = System.Web.Http.RouteParameter.Optional});
我在模板的 OnInit 之后添加了这一行 root.master.cs,这在第一次加载时工作正常,但在下一次加载时出现此错误:
A road named 'customapi' is already in the road collection. Route
names must be unique.
Kentico 上有一个 application_start 我可以在哪里添加这行?
由于 Root.master.cs
的 OnInit
事件在每次加载页面后都会触发,因此每次加载页面时您基本上都会映射您的路线。
您需要映射 应用程序 的加载路由,而不是 页面 。
Create a custom module,并在模块的初始化上设置你的路由。模块在应用程序启动时初始化。
using System.Web.Http;
using CMS;
using CMS.DataEngine;
[assembly: RegisterModule(typeof(MyCustomModule))]
public class MyCustomModule : Module
{
public MyCustomModule() : base("MyCustomModule") { }
// Called when the application starts
protected override void OnInit()
{
base.OnInit();
GlobalConfiguration.Configuration.Routes.MapHttpRoute("customapi", "customapi/{controller}/{id}", new { id = System.Web.Http.RouteParameter.Optional });
}
}
我正在寻找 Kentico 11 中的解决方案来添加我们自定义的映射 API:
GlobalConfiguration.Configuration.Routes.MapHttpRoute ("customapi", "customapi / {controller} / {id}", new {id = System.Web.Http.RouteParameter.Optional});
我在模板的 OnInit 之后添加了这一行 root.master.cs,这在第一次加载时工作正常,但在下一次加载时出现此错误:
A road named 'customapi' is already in the road collection. Route names must be unique.
Kentico 上有一个 application_start 我可以在哪里添加这行?
由于 Root.master.cs
的 OnInit
事件在每次加载页面后都会触发,因此每次加载页面时您基本上都会映射您的路线。
您需要映射 应用程序 的加载路由,而不是 页面 。
Create a custom module,并在模块的初始化上设置你的路由。模块在应用程序启动时初始化。
using System.Web.Http;
using CMS;
using CMS.DataEngine;
[assembly: RegisterModule(typeof(MyCustomModule))]
public class MyCustomModule : Module
{
public MyCustomModule() : base("MyCustomModule") { }
// Called when the application starts
protected override void OnInit()
{
base.OnInit();
GlobalConfiguration.Configuration.Routes.MapHttpRoute("customapi", "customapi/{controller}/{id}", new { id = System.Web.Http.RouteParameter.Optional });
}
}