我已经开始在Mvc5中学习webApi了。
我尝试了我的第一个项目,但不幸的是它没有用,我无法理解为什么。
我已经完成了以下步骤:
1-首先,我在sql server
中创建了一个名为Person的数据库2-然后我添加了一个名为Person的表,其中包含以下字段:Id作为主键,FullName
3-我做了一个空的MVC项目是vs 2013
4-我添加了我的EF模型并重建了项目
5-我创建了一个名为api的新文件夹
6-我添加了一个控制器(带有动作的Web Api 2,使用实体框架):
7-我将这些行添加到Global.asax
using System.Web.Http;
using System.Web.Routing;
8 - 这是我的申请开始:
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
但是当我运行应用程序并将http://localhost:XXXX/api/people
输入到网址浏览器中时,无法找到该资源。
有人可以帮助我吗?
提前致谢
这是PeopleController:
public class PeopleController : ApiController
{
private PersonEntities db = new PersonEntities();
// GET api/People
public IQueryable<Person> GetPeople()
{
return db.People;
}
// GET api/People/5
[ResponseType(typeof(Person))]
public IHttpActionResult GetPerson(int id)
{
Person person = db.People.Find(id);
if (person == null)
{
return NotFound();
}
return Ok(person);
}
// PUT api/People/5
public IHttpActionResult PutPerson(int id, Person person)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != person.Id)
{
return BadRequest();
}
db.Entry(person).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!PersonExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
// POST api/People
[ResponseType(typeof(Person))]
public IHttpActionResult PostPerson(Person person)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.People.Add(person);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = person.Id }, person);
}
// DELETE api/People/5
[ResponseType(typeof(Person))]
public IHttpActionResult DeletePerson(int id)
{
Person person = db.People.Find(id);
if (person == null)
{
return NotFound();
}
db.People.Remove(person);
db.SaveChanges();
return Ok(person);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
private bool PersonExists(int id)
{
return db.People.Count(e => e.Id == id) > 0;
}
}