Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web API找不到ApicController_C#_Asp.net_.net_Asp.net Web Api - Fatal编程技术网

C# Web API找不到ApicController

C# Web API找不到ApicController,c#,asp.net,.net,asp.net-web-api,C#,Asp.net,.net,Asp.net Web Api,我正在尝试构建一个小型应用程序,一个api,用于使用实体框架获取数据,并使用web api将pas输出到json,但出现错误:{“消息”:“未找到与请求URI“”匹配的HTTP资源”,“消息详细信息”:“未找到与名为“GetCarousel”的控制器匹配的类型”。} 呼叫链接: 我从Goggle那里了解到,似乎有很多解决方案,但似乎不适合我 WebApiConfig文件 public class WebApiConfig { public static void Register(H

我正在尝试构建一个小型应用程序,一个api,用于使用实体框架获取数据,并使用web api将pas输出到json,但出现错误:{“消息”:“未找到与请求URI“”匹配的HTTP资源”,“消息详细信息”:“未找到与名为“GetCarousel”的控制器匹配的类型”。}

呼叫链接:

我从Goggle那里了解到,似乎有很多解决方案,但似乎不适合我

WebApiConfig文件

  public class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.EnableCors();

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

                        );

        config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
    }
}
GetCarousel.cs控制器文件

  public class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.EnableCors();

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

                        );

        config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
    }
}
这是在实体框架的帮助下从数据库生成的

namespace MustWebAPI.Controller
{
public class GetCarousel : ApiController
{
    private MustTestEntitie db = new MustTestEntitie();

    // GET: api/GetCarousel
    public IQueryable<GetCarousel_Result> GetGetCarousel_Result()
    {
        return db.GetCarousel_Result;
    }

    // GET: api/GetCarousel/5
    [ResponseType(typeof(GetCarousel_Result))]
    public IHttpActionResult GetGetCarousel_Result(int id)
    {
        GetCarousel_Result getCarousel_Result = db.GetCarousel_Result.Find(id);
        if (getCarousel_Result == null)
        {
            return NotFound();
        }

        return Ok(getCarousel_Result);
    }

    // PUT: api/GetCarousel/5
    [ResponseType(typeof(void))]
    public IHttpActionResult PutGetCarousel_Result(int id, GetCarousel_Result getCarousel_Result)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        if (id != getCarousel_Result.Id)
        {
            return BadRequest();
        }

        db.Entry(getCarousel_Result).State = EntityState.Modified;

        try
        {
            db.SaveChanges();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!GetCarousel_ResultExists(id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return StatusCode(HttpStatusCode.NoContent);
    }

    // POST: api/GetCarousel
    [ResponseType(typeof(GetCarousel_Result))]
    public IHttpActionResult PostGetCarousel_Result(GetCarousel_Result getCarousel_Result)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        db.GetCarousel_Result.Add(getCarousel_Result);
        db.SaveChanges();

        return CreatedAtRoute("DefaultApi", new { id = getCarousel_Result.Id }, getCarousel_Result);
    }

    // DELETE: api/GetCarousel/5
    [ResponseType(typeof(GetCarousel_Result))]
    public IHttpActionResult DeleteGetCarousel_Result(int id)
    {
        GetCarousel_Result getCarousel_Result = db.GetCarousel_Result.Find(id);
        if (getCarousel_Result == null)
        {
            return NotFound();
        }

        db.GetCarousel_Result.Remove(getCarousel_Result);
        db.SaveChanges();

        return Ok(getCarousel_Result);
    }

    protected override void Dispose(bool disposing)
    {
        if (disposing)
        {
            db.Dispose();
        }
        base.Dispose(disposing);
    }

    private bool GetCarousel_ResultExists(int id)
    {
        return db.GetCarousel_Result.Count(e => e.Id == id) > 0;
    }
}
}
命名空间MustWebAPI.Controller
{
公共类GetCarousel:ApiController
{
私有MustTestentie db=新MustTestentie();
//获取:api/GetCarousel
公共IQueryable GetGetCarousel_结果()
{
返回db.GetCarousel_结果;
}
//获取:api/GetCarousel/5
[响应类型(类型(GetCarousel_结果))]
公共IHttpActionResult GetGetCarousel_结果(内部id)
{
GetCarousel_Result GetCarousel_Result=db.GetCarousel_Result.Find(id);
if(getCarousel_Result==null)
{
返回NotFound();
}
返回Ok(getCarousel_结果);
}
//PUT:api/GetCarousel/5
[响应类型(typeof(void))]
公共IHttpActionResult PutGetCarousel_结果(int id,GetCarousel_结果GetCarousel_结果)
{
如果(!ModelState.IsValid)
{
返回请求(ModelState);
}
if(id!=getCarousel_Result.id)
{
返回请求();
}
db.Entry(getCarousel_Result).State=EntityState.Modified;
尝试
{
db.SaveChanges();
}
catch(DbUpdateConcurrencyException)
{
如果(!GetCarousel_结果列表(id))
{
返回NotFound();
}
其他的
{
投掷;
}
}
返回状态码(HttpStatusCode.NoContent);
}
//邮政编码:api/GetCarousel
[响应类型(类型(GetCarousel_结果))]
公共IHttpActionResult PostGetCarousel_结果(GetCarousel_结果GetCarousel_结果)
{
如果(!ModelState.IsValid)
{
返回请求(ModelState);
}
db.GetCarousel_Result.Add(GetCarousel_Result);
db.SaveChanges();
返回CreatedAtRoute(“DefaultApi”,新的{id=getCarousel_Result.id},getCarousel_Result);
}
//删除:api/GetCarousel/5
[响应类型(类型(GetCarousel_结果))]
公共IHttpActionResult DeleteGetCarousel_结果(内部id)
{
GetCarousel_Result GetCarousel_Result=db.GetCarousel_Result.Find(id);
if(getCarousel_Result==null)
{
返回NotFound();
}
db.GetCarousel_Result.Remove(GetCarousel_Result);
db.SaveChanges();
返回Ok(getCarousel_结果);
}
受保护的覆盖无效处置(布尔处置)
{
如果(处置)
{
db.Dispose();
}
基地。处置(处置);
}
私有bool GetCarousel_结果列表(int-id)
{
返回db.GetCarousel_Result.Count(e=>e.Id==Id)>0;
}
}
}

您应该将类从
GetCarousel
重命名为
GetCarouselController
,因为这是web api路由的约定


作为旁注,最好将其重命名为更合适的名称,例如“CarouseController”,通常“GetCarousel”作为操作的名称更合适,不是控制器。

您应该将类从
GetCarousel
重命名为
GetCarouselController
,因为这是web api路由的约定


作为旁注,最好将其重命名为更合适的名称,例如“CarouseController”,通常“GetCarousel”更适合作为操作的名称,而不是控制器。

更具体地说,他需要将类
GetCarousel
重命名为
GetCarouseController
,文件名不相关。。。微妙但相关。已编辑。将其删除并重新创建为:
公共类旋转木马控制器:ApiController{}
仍获取消息
{“消息”:“未找到与请求URI匹配的HTTP资源”http://localhost:61267/api/CarouselController“.”,“MessageDetail”:“未找到与名为“CarouseController”的控制器匹配的类型”。}
url将是。。。您还需要重命名您的操作以遵循约定…更具体地说,他需要将类
GetCarousel
重命名为
GetCarouselController
,文件名不相关。。。微妙但相关。已编辑。将其删除并重新创建为:
公共类旋转木马控制器:ApiController{}
仍获取消息
{“消息”:“未找到与请求URI匹配的HTTP资源”http://localhost:61267/api/CarouselController“.”,“MessageDetail”:“未找到与名为“CarouseController”的控制器匹配的类型”。}
url将是。。。您还需要重命名您的操作以遵循约定。
GetCarousel
是特定的吗?因为对我来说,这看起来像是一个方法名,并且导致了一个坏的类名,因此称为“getcarousel”。类名称中的下划线--
GetCarousel\u Result
--违反。GetCarousel是否有特定内容?因为对我来说,这看起来像是一个方法名,并且导致了一个坏的类名,因此称为“getcarousel”。类名称中的下划线--
GetCarousel\u Result
--违反。