我正在尝试构建一个小应用程序,一个api,它用实体框架获取数据,而pas则使用web获取json,但是得到错误:{“Message”:“没有找到与请求URI ”MessageDetail“匹配的HTTP资源:”没有找到与名为‘GetCarousel’的控制器匹配的类型“}。
呼叫链接:http://localhost:61267/api/GetCarousel
当我戴上护目镜时,我知道这似乎是许多解决办法,但似乎不适合我。
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控制器文件
这是在实体框架的帮助下从数据库生成的
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;
}
}
}发布于 2015-02-26 16:04:18
您应该将类从GetCarousel重命名为GetCarouselController,因为这是web路由的惯例。
另外,最好将其重命名为"CarouselController",通常"GetCarousel“更适合作为操作的名称,而不是控制器的名称。
https://stackoverflow.com/questions/28747033
复制相似问题