ASP.NET帮助页面默认主页?

Gau*_*aui 27 asp.net-mvc-areas asp.net-mvc-4 attributerouting asp.net-web-api-helppages

我想转到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 }
        );
}
Run Code Online (Sandbox Code Playgroud)

然后我的帮助页面区域注册设置如下:

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);
}
Run Code Online (Sandbox Code Playgroud)

当我改变RouteConfig时controller,"Help"我得到:

未找到视图"索引"或其主数据或视图引擎不支持搜索的位置

当我将帮助页面路由更改为"{controller}/{action}/{apiId}"我的AttributeRoutes时停止工作.

是否有一些简单的方法来使ASP.NET帮助页面成为默认主页?

jms*_*msb 50

我用以下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" });
    }
}
Run Code Online (Sandbox Code Playgroud)

我还应该提到我在这个类中没有任何其他路由,因为我在API方法上单独使用属性路由.


Pat*_*ins 19

对于那些搜索路径添加位置的人,使用当前版本的WebApi和NuGet包,您必须在NuGet添加的Area文件夹中搜索名为"HelpPageAreaRegistration"的文件.

一旦它被编码为具有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);
    }
}
Run Code Online (Sandbox Code Playgroud)