前言:
webapi分为两种创建形式:1、单独的webapi项目;2、放到mvc项目里
post(增加)、Delete(删除)、Put(修改)、Get(查询)
1、创建基本的web项目
2、api代码

public class TestController : ApiController { // GET api/<controller> public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // 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) { } }
eg:

using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using Newtonsoft.Json; using System.Web.Mvc; using WebApi.Models; namespace WebApi.Controllers { public class TestController : ApiController { [System.Web.Mvc.HttpGet] public List<Book> GetOne( ) //必须以Get开头 { using ( MyDB db = new MyDB( ) ) { return db.Books.ToList( ); } } [System.Web.Mvc.HttpPost] public void Post( Book book ) { using ( MyDB db = new MyDB() ) { db.Books.Add( book ); db.SaveChanges( ); } } [System.Web.Mvc.HttpPut] public void Put( Book book) { using ( MyDB db = new MyDB() ) { var bk = db.Books.FirstOrDefault( b => b.bid == book.bid ); bk.bname = book.bname; bk.bcount = book.bcount; db.SaveChanges( ); } } [System.Web.Mvc.HttpDelete] public void Delete( int id ) { using ( MyDB db = new MyDB() ) { var bk = db.Books.FirstOrDefault( b => b.bid == id ); db.Books.Remove( bk ); db.SaveChanges( ); } } } }
3、进行调用

private string apiUrl = WebConfigurationManager.AppSettings[ "apiUrl" ].ToString( ); //接口地址放到webconfig配置<appSettings>中里 //查询 public ActionResult Index( ) { HttpClient client = new HttpClient( ); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue( "application/json" ) ); //执行Get操作 HttpResponseMessage response = client.GetAsync( apiUrl ).Result; var list = response.Content.ReadAsAsync<List<Book>>( ).Result; return View(list); } //添加 [HttpPost] public ActionResult AddBook(Book book ) { HttpClient client = new HttpClient( ); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue( "application/json" ) ); var response = client.PostAsJsonAsync( apiUrl , book ).Result; return RedirectToAction( "Index" ); } //删除 public ActionResult DeleteBook( int id ) { HttpClient client = new HttpClient( ); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue( "application/json" ) ); var response = client.DeleteAsync( apiUrl+id ).Result; return RedirectToAction( "Index" ); } //修改 [HttpPost] public ActionResult UpdateBook( Book book ) { HttpClient client = new HttpClient( ); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue( "application/json" ) ); var response = client.PutAsJsonAsync( apiUrl , book ).Result; return RedirectToAction( "Index" ); }