ASP.NET Help Pages default home page?

12,556

Solution 1

I accomplished this with the following RouteConfig. I am also using ASP.Net Help Pages to auto-generate my documentation from the inline XML comments:

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" });
    }
}

I should also mention that I don't have any other routing in this class since I am using Attribute Routing on API methods individually.

Solution 2

For those who search where to add the route, with the current version of the WebApi and of the NuGet package you have to search for the file named "HelpPageAreaRegistration" in the Area folder added by NuGet.

Here is mine once it was coded to have the help page with WebApi has default web page.

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);
    }
}
Share:
12,556

Related videos on Youtube

Gaui
Author by

Gaui

Passionate about technology in general, professional software architecture and development, system infrastructure, cloud computing, digital transformation, continuous improvement and company culture.

Updated on June 21, 2020

Comments

  • Gaui
    Gaui over 3 years

    I want to go to http://myserver and be able to get Help Pages as the default home page, so the first thing a guest to http://myserver should see is the Help Page.

    I have a default route set up like this:

    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 }
            );
    }
    

    Then I have my Help Page Area registration set up like this:

    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);
    }
    

    When I change RouteConfig's controller to "Help" I get:

    The view 'Index' or its master was not found or no view engine supports the searched locations

    When I change Help Page route to "{controller}/{action}/{apiId}" my AttributeRoutes stop working.

    Is there some easy way to make ASP.NET Help Pages default home page?