Начальная страница главной страницы справки 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?
Ответы
Ответ 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);
}
}