我想转到http://myserver
并能够将帮助页面作为默认主页,因此http://myserver
的访客应首先看到的是帮助页面。
我有一个默认路由设置如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
然后我的帮助页面区域注册设置如下:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"HelpPage_Default",
"doc/{action}/{apiId}",
new { controller = "Help", action = "Index", apiId = UrlParameter.Optional });
HelpPageConfig.Register(GlobalConfiguration.Configuration);
}
当我将RouteConfig的controller
更改为"Help"
时,我得到:
未找到视图“索引”或其主控或没有查看引擎 支持搜索的位置
当我将帮助页面路线更改为"{controller}/{action}/{apiId}"
时,我的AttributeRoutes停止工作。
是否有一些简单的方法可以使ASP.NET帮助页面成为默认主页?
答案 0 :(得分:48)
我用以下RouteConfig完成了这个。我还使用ASP.Net帮助页面从内联XML注释中自动生成我的文档:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// By default route the user to the Help area if accessing the base URI.
routes.MapRoute(
"Help Area",
"",
new { controller = "Help", action = "Index" }
).DataTokens = new RouteValueDictionary(new { area = "HelpPage" });
}
}
我还应该提到我在这个类中没有任何其他路由,因为我在API方法上单独使用属性路由。
答案 1 :(得分:19)
对于那些搜索路径添加位置的人,使用当前版本的WebApi和NuGet包,您必须搜索名为" HelpPageAreaRegistration"的文件。在NuGet添加的Area文件夹中。
一旦编码为具有WebApi的帮助页面具有默认网页,这是我的。
public class HelpPageAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "HelpPage";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"HelpPage_Default",
"Help/{action}/{apiId}",
new { controller = "Help", action = "Index", apiId = UrlParameter.Optional });
context.MapRoute(
"Help Area",
"",
new { controller = "Help", action = "Index" }
);
HelpPageConfig.Register(GlobalConfiguration.Configuration);
}
}