【发布时间】:2017-10-25 11:31:17
【问题描述】:
由于 Atrribute 路由在 sitecore 8.1 开箱即用中不起作用,我关注 https://github.com/Krusen/Sitecore.WebApi
并获得了 Krusen.Sitecore.WebApi.Custom 的 uget 包。
这是我的ConfigureWebApi 课程
public class ConfigureWebApi
{
public void Process(PipelineArgs args)
{
GlobalConfiguration.Configure(config => config.Routes.MapHttpRoute(
name: "myApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
));
GlobalConfiguration.Configure(config => config.MapHttpAttributeRoutes());
GlobalConfiguration.Configure(ReplaceControllerSelector);
}
private static void ReplaceControllerSelector(HttpConfiguration config)
{
config.Services.Replace(typeof (IHttpControllerSelector),
new CustomHttpControllerSelector(config, new NamespaceQualifiedUniqueNameGenerator()));
}
}
这是我的控制器
[RoutePrefix("windows")]
public class WmsController : ApiController
{
[HttpGet]
[Route("hi")]
public IHttpActionResult Hello()
{
return Ok("Welcome to my Api.");
}
}
当我这样称呼时:
http://my.api.local/api/wms/hello
有效。
但是当我打电话时
http://my.api.local/api/windows/hi
不起作用。它说 404。
我是不是错过了什么!!
【问题讨论】:
-
根据你的配置,不应该叫
http://my.api.local/windows/hi吗? (没有/api)
标签: c# sitecore asp.net-web-api-routing sitecore8.1