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

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

【讨论】:

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