【问题标题】:Default controller giving me a "No HTTP resource was found that matches the request URI" -"No type was found that matches the controller named 'tab'默认控制器给我一个“未找到与请求 URI 匹配的 HTTP 资源”-“未找到与名为“选项卡”的控制器匹配的类型
【发布时间】:2021-09-06 20:12:00
【问题描述】:

我正在尝试使用以下端点访问连接到 IIS 的本地主机上的应用程序,我正在尝试点击 https://api.url.com/api/tab。我的控制器文件夹中有一个TabController.cs。我还有一个Views/Tab/Index.cshtml 文件,我想知道为什么会出现以下两个错误:

<Error>
<Message>No HTTP resource was found that matches the request URI 'https://api.url.com/api/tab'.</Message>
<MessageDetail>No type was found that matches the controller named 'tab'.</MessageDetail>
</Error>

我有一个名为Footer 的控制器的相同文件夹结构,并且我能够成功访问https://api.url.com/api/footer。我在下面包含了我的WebApiConfig.csRouteConfig.cs 代码:

WebApiConfig.cs

public static void Register(HttpConfiguration config)
{
    // Web API configuration and services

    // Web API routes
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
}

RouteConfig.cs

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

我感觉很明显我错过了一些东西,因为我对 .NET 和 MVC 结构有点陌生。因此,我们将不胜感激任何正确方向的观点。

【问题讨论】:

    标签: c# .net asp.net-mvc


    【解决方案1】:

    您尝试访问 MVC 控制器(继承自 System.Web.Mvc.Controller),就好像它是 Web API 控制器(继承自 System.Web.Http.ApiController)一样。如您所知,API 控制器有自己的路由配置,它与其余的完全分开 应用程序。因此,要从常规 MVC 控制器访问操作方法,请不要在 URL 中使用 api 前缀。只需输入https://api.url.com/tab 即可调用tab 控制器中的默认操作方法。

    【讨论】:

    • 好的,我添加了正确的 using 语句只是为了使用 ApiController 接口,但我现在得到一个“'ObjectContent`1'类型无法序列化内容类型'application/的响应正文” xml; charset=utf-8'" 并在其下方显示“操作无法完成,因为 DbContext 已被释放。”错误。我在另一层有我的 dbcontext,所以我不确定为什么会抛出这个。
    • 实际上@Jackdaw,我之前的评论是一个完全独立的问题。您的回答是对我最初问题的回答,并摆脱了那个特定的错误消息。谢谢!
    • @jmath412:必须在帖子中包含相关代码才能了解导致错误的原因。使用相关代码发布一个新问题,我们将尽力帮助您。问候。
    • 刚刚为最新的错误创建了一个新帖子,如果您想破解它:stackoverflow.com/questions/69080920/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 2015-08-13
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多