Не найден тип, соответствующий контроллеру с именем '' - PullRequest
0 голосов
/ 03 октября 2019

Мы разрабатываем API для наших таблиц SQL Server. Класс 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)
    {
    }

}

Но при просмотре этого URL мы получили ошибку "http://localhost:50246/User". Ошибка:следующим образом:

Не найден ресурс HTTP, соответствующий URI запроса 'http://localhost:50246/user'. Не найден тип, соответствующий контроллеру с именем' User '.

1 Ответ

1 голос
/ 03 октября 2019

Имя вашего контроллера UsersController (с символом S) и в вашем URL вы устанавливаете ../User, а также в

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

Попробуйте установить Users в вашем URL и Entity Set, илиизменить контроллер на UserController

...