Asp.net mvc ASP.NET Web API项目模板如何使用此帮助页区域,就像它不是';这不是一个区域吗?
在Visual Studio 2017社区(或任何版本)中打开一个新的ASP.NET Web API项目并运行它,您将看到一个带有API超链接的欢迎页面 单击超链接,它会将您带到urlAsp.net mvc ASP.NET Web API项目模板如何使用此帮助页区域,就像它不是';这不是一个区域吗?,asp.net-mvc,asp.net-web-api,asp.net-mvc-areas,Asp.net Mvc,Asp.net Web Api,Asp.net Mvc Areas,在Visual Studio 2017社区(或任何版本)中打开一个新的ASP.NET Web API项目并运行它,您将看到一个带有API超链接的欢迎页面 单击超链接,它会将您带到urlhttp://localhost:/Help 这是帮助页面区域中帮助控制器上的索引操作 public class HelpPageAreaRegistration : AreaRegistration { public override string AreaName { get{
http://localhost:/Help
这是帮助页面
区域中帮助控制器
上的索引
操作
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 });
HelpPageConfig.Register(GlobalConfiguration.Configuration);
}
}
然而,我感到困惑的是:
帮助页
区域没有区域注册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 });
HelpPageConfig.Register(GlobalConfiguration.Configuration);
}
}
ActionLink
调用完全错误。它说,“请在默认的无区域内调用帮助控制器
上的索引
操作。”<li>@Html.ActionLink("API", "Index", "Help", new { area = "" }, null)</li>
That's outright abusive. How does that work?
@Html.ActionLink(“API”、“索引”、“帮助”,新建{area=”“},空)
那完全是辱骂。这是怎么回事?
localhost:/HelpPage/Help/[optional:Index]
?这个区域的路线配置在哪里?如果没有,路由应该按照根目录中声明的唯一默认路由,area less area,对吗有一个
Areas\HelpPage\HelpPageAreaRegistration.cs
文件负责区域注册,如下所示。(我正在使用Visual Studio 2017企业版。) 请注意,
HelpPageAreaRegistration
类注册路由Help/{action}/{apid}
,该路由使用与区域名称不匹配的常量url模板部分Help
(按照惯例,此路由应该是
HelpPage/{controller}/{action}/{id}
)
这样,您就不必(也不能)在@html.ActionLink
中指定区域名称,因为此控制器有一个“显式”路由,可以避免与其他路由(包括来自默认区域的路由)发生冲突。必须在
区域注册
中配置此路由,而不是在路由图
中配置此路由,以便在此帮助页
区域内的相应视图文件夹中解析视图
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 });
HelpPageConfig.Register(GlobalConfiguration.Configuration);
}
}
该死我怎么会错过那一刻。