【问题标题】: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 资源。 找不到与名为“用户”的控制器匹配的类型。

【问题讨论】:

    标签: c# sql-server api asp.net-web-api odata


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多