找不到与名为 '' 的控制器匹配的类型

Posted

技术标签:

【中文标题】找不到与名为 \'\' 的控制器匹配的类型【英文标题】:No type was found that matches the controller named ''找不到与名为 '' 的控制器匹配的类型 【发布时间】:2020-02-01 13:28:48 【问题描述】:

我们正在为我们的 SQL Server 表开发 API。 WebApiConfig 类如下:

public static class WebApiConfig

    public static void Register(HttpConfiguration config)
    
        ODataModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<CRMUser>("User");
        config.MapODataServiceRoute(routeName:"ODataRoute",
            routePrefix: null,
            model: builder.GetEdmModel());
    

控制器如下:

public class UsersController : ODataController

    // GET api/<controller>
    OnlineStoreEntities db = new OnlineStoreEntities();
    protected override void Dispose(bool disposing)
    
        db.Dispose();
        base.Dispose(disposing);
    
    public IEnumerable<CRM_vwUser> Get()
    
        return db.CRM_vwUser;
    

    // GET api/<controller>/5
    public string Get(int id)
    
        return "value";
    

    // POST api/<controller>
    public void Post([FromBody]string value)
    
    

    // PUT api/<controller>/5
    public void Put(int id, [FromBody]string value)
    
    

    // DELETE api/<controller>/5
    public void Delete(int id)
    
    


但我们在浏览此网址“http://localhost:50246/User”时出错。错误如下:

未找到与请求 URI 'http://localhost:50246/user' 匹配的 HTTP 资源。 找不到与名为“用户”的控制器匹配的类型。

【问题讨论】:

【参考方案1】:

您的控制器名称是 UsersController(带有 S)并且在您的 URL 中设置了 ../User 以及

 builder.EntitySet<CRMUser>("User");

尝试在您的 URL 和实体集中设置Users,或将控制器更改为UserController

【讨论】:

以上是关于找不到与名为 '' 的控制器匹配的类型的主要内容,如果未能解决你的问题,请参考以下文章

找不到名为“my”的模块。找不到名为“mycontroller”的控制器

为啥这里“找不到与请求 URI 匹配的 HTTP 资源”?

为啥即使创建了对象,django 也找不到与查询匹配的任何对象

找不到与应用程序标识符匹配的有效配置文件

报错:ASP.NET Web API中找不到与请求匹配的HTTP资源

找不到与命令“dotnet-aspnet-codegenerator”匹配的可执行文件”