ASP.NET strony pomocy domyślna Strona główna?

Chcę przejść do http://myserver i być w stanie uzyskać strony pomocy jako domyślną stronę główną, więc pierwszą rzeczą, którą gość powinien zobaczyć, jest strona pomocy.

Mam domyślną trasę ustawioną tak:

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

Potem mam moją rejestrację obszaru pomocy ustawioną tak:

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

Kiedy zmieniam routeconfig ' s controller na "Help" dostaję:

Widok 'Index' lub jego master nie został znaleziony lub nie ma silnika widoku obsługuje wyszukiwane lokalizacje

Kiedy Zmień trasę strony pomocy na "{controller}/{action}/{apiId}" moje atrybuty przestają działać.

Czy jest jakiś łatwy sposób na ASP.NET strony pomocy domyślna Strona główna?

Author: Gaui, 2013-09-18

2 answers

Udało mi się to osiągnąć za pomocą następującego RouteConfig. Ja również używam ASP.Net strony pomocy do automatycznego generowania dokumentacji z wbudowanego XML komentarze:

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

Powinienem również wspomnieć, że nie mam żadnego innego routingu w tej klasie, ponieważ używam trasowania atrybutów w metodach API indywidualnie.

 44
Author: jmsb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-25 13:55:31

Dla tych, którzy szukają gdzie dodać trasę, przy bieżącej wersji WebApi i pakietu NuGet należy wyszukać plik o nazwie "Helppagearegistration" w folderze Area dodanym przez NuGet.

Oto mój raz został zakodowany, aby Strona pomocy z WebApi miała domyślną stronę internetową.

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);
    }
}
 18
Author: Patrick Desjardins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-20 19:17:30