Подтвердить что ты не робот

Начальная страница главной страницы справки ASP.NET?

Я хочу перейти к 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?

4b9b3361

Ответ 1

Я выполнил это с помощью следующего 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-методам индивидуально.

Ответ 2

Для тех, кто ищет, где добавить маршрут, с текущей версией WebApi и пакета NuGet вы должны искать файл с именем "HelpPageAreaRegistration" в папке "Область", добавленной NuGet.

Вот мой, как только он был закодирован, чтобы страница справки с 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);
    }
}