gpt4 book ai didi

asp.net - 未找到与名为 'help' 的 Controller 匹配的类型

转载 作者:行者123 更新时间:2023-12-02 15:52:54 25 4
gpt4 key购买 nike

我一直在关注this guide添加帮助页面来记录我的 Web API 项目。我的 Controller 名为 HelpController,我尝试使用一条路线将 Index 操作映射到/Help。这是项目中唯一的 MVC Controller 。由于其余的都是 Web API Controller ,因此我们从 WebAPIConfig.cs 中的默认路由中删除了“/api”前缀。

帮助 Controller :

public class HelpController : Controller
{
public ActionResult Index()
{
var apiExplorer = GlobalConfiguration.Configuration.Services.GetApiExplorer();
return View(apiExplorer);
}
}

和路由配置:

public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
name: "Default",
url: "help",
defaults: new { controller = "Help", action = "Index"});

}
}

在 Global.asax.cs 中

protected void Application_Start()
{
// ..
WebApiConfig.Register(GlobalConfiguration.Configuration);
RouteConfig.RegisterRoutes(RouteTable.Routes);
// ..
}

但是当我尝试在浏览器中导航到/help 时,我收到以下错误消息。

<Error>
<Message>No HTTP resource was found that matches the request URI 'http://localhost/ws/help'.</Message>
<MessageDetail>No type was found that matches the controller named 'help'.</MessageDetail>
</Error>

编辑:该消息包含/ws/help,因为应用程序托管在 IIS 中的 localhost/ws 上。

有谁知道什么可能导致 ASP.NET 找不到我的 HelpController?

更新:如果我更改 Application_Start 中 RouteConfig 和 WebApiConfig 注册调用的顺序,则会收到 404 错误。

protected void Application_Start()
{
// ..
RouteConfig.RegisterRoutes(RouteTable.Routes);
WebApiConfig.Register(GlobalConfiguration.Configuration);
// ..
}

最佳答案

由于您已从其路由模板中删除了 api,因此对 help 的请求正在与 Web API 的路由相匹配。如果请求与路由匹配,则不会对其余路由进行进一步探测。您可能在 Global.asax 中采用默认顺序,其中首先注册 Web API 路由,然后注册 MVC 路由。您能分享一下您的 Global.asax 的样子吗?

编辑:根据您最后的评论,如果您安装 HelpPage nuget 包,请确保 Global.asax 中的顺序如下所示:

AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
RouteConfig.RegisterRoutes(RouteTable.Routes);

关于asp.net - 未找到与名为 'help' 的 Controller 匹配的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20378814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com