我有一个 WebAPI 项目,它还使用 MCV.Explorer 库提供了一个文档页面,我无法理解如何向该控制器添加路由。
Api 控制器使用此路由按预期工作:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我在 API 应用程序的“Docs”目录中有一个 docs 控制器,如下所示:
[System.Web.Http.AllowAnonymous]
public class DocsController : Controller
{
[System.Web.Mvc.HttpGet]
public ActionResult Index()
{
var apiExplorer = GlobalConfiguration.Configuration.Services.GetApiExplorer();
return View(apiExplorer);
}
}
我正在尝试通过以下方式路由到它:
routes.MapRoute(
name: "Docs",
url: "Docs/",
defaults: new { controller = "Docs", action = "Index" }
);
该站点只是错误地抱怨没有启用目录浏览。我猜由于控制器类不在 Controllers 目录中而发生了一些事情,但我不确定这方面。
我在 Home ApiController 上也有一个简单的方法(索引),目前返回几个链接。您将如何设置路由来处理 ApiController 的 home\index 路由?
[System.Web.Http.AllowAnonymous]
public class HomeController : ApiController
{
[HttpGet]
public Link[] Index()
{
return new Link[]
{
new SelfLink(Request.RequestUri.AbsoluteUri, "mood-api-root"),
new Link("auth", @"Account/Login/", "authenticate")
};
}
}
任何指针都会很棒,谢谢。