// Controllers.cs namespace Microshaoft.WebApi.Controllers { using Microshaoft.WebApi.Models; using System; using System.Collections.Generic; using System.Web.Http; using System.Net.Http; using System.Net; using System.Linq; public class PersonsController : ApiController { List<Person> _persons = new Person[] { new Person("张栢芝", 71, 178, 49) , new Person("章子怡", 23, 177, 33) , new Person("周 迅", 12, 180, 80) , new Person("徐静蕾", 12, 150, 70) , new Person("赵 薇", 23, 166, 60) , new Person("宋丹丹", 50, 183, 50) , new Person("翠花儿", 23, 177, 34) , new Person("赵丽蓉", 50, 184, 40) , new Person("郭晶晶", 50, 184, 41) }.ToList(); public IEnumerable<Person> GetXXX() { return _persons; } public IEnumerable<Person> getXXXX(int i) { return _persons; } // GET api/values/5 public string Get(int id) { return "value"; } // POST api/values public void Post([FromBody]string value) { } public HttpResponseMessage Post(Person item) { _persons.Add(item); var response = Request.CreateResponse<Person>(HttpStatusCode.Created, item); string uri = Url.Link("DefaultApi", new { Name = item.Name }); response.Headers.Location = new Uri(uri); return response; } // PUT api/values/5 public void Put(int id, [FromBody]string value) { } public void Put(int id, Person item) { _persons[id] = item; } // DELETE api/values/5 public void Delete(int id) { _persons.RemoveAt(id); } } } // Models.cs namespace Microshaoft.WebApi.Models { using System; public class Person : IComparable<Person> { public string Name { get; set; } public int Age { get; set; } public int Height { get; set; } public int Weight { get; set; } public Person(string name, int age, int height, int weight) { Name = name; Age = age; Height = height; Weight = weight; } public Person() { } public override string ToString() { return string.Format ( "姓名:{0}, 年龄:{1:N}, 体重:{2:N}, 身高:{3:N}" , Name , Age , Height , Weight ); } public int CompareTo(Person other) { int r = 0; r = Age - other.Age; if (r == 0) { r = Height - other.Height; if (r == 0) { r = Weight - other.Weight; } } return r; } } } // BundleConfig.cs namespace Microshaoft.WebMvc { using System.Web.Optimization; public class BundleConfig { // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725 public static void RegisterBundles(BundleCollection bundles) { bundles.Add ( new ScriptBundle("~/bundles/jquery") .Include("~/Scripts/jquery-{version}.js") ); bundles.Add ( new ScriptBundle("~/bundles/jqueryui") .Include("~/Scripts/jquery-ui-{version}.js") ); bundles.Add ( new ScriptBundle("~/bundles/jqueryval") .Include ( "~/Scripts/jquery.unobtrusive*" , "~/Scripts/jquery.validate*" ) ); // Use the development version of Modernizr to develop with and learn from. Then, when you're // ready for production, use the build tool at http://modernizr.com to pick only the tests you need. bundles.Add ( new ScriptBundle("~/bundles/modernizr") .Include("~/Scripts/modernizr-*") ); bundles.Add ( new StyleBundle("~/Content/css") .Include("~/Content/site.css") ); bundles.Add ( new StyleBundle("~/Content/themes/base/css") .Include ( "~/Content/themes/base/jquery.ui.core.css", "~/Content/themes/base/jquery.ui.resizable.css", "~/Content/themes/base/jquery.ui.selectable.css", "~/Content/themes/base/jquery.ui.accordion.css", "~/Content/themes/base/jquery.ui.autocomplete.css", "~/Content/themes/base/jquery.ui.button.css", "~/Content/themes/base/jquery.ui.dialog.css", "~/Content/themes/base/jquery.ui.slider.css", "~/Content/themes/base/jquery.ui.tabs.css", "~/Content/themes/base/jquery.ui.datepicker.css", "~/Content/themes/base/jquery.ui.progressbar.css", "~/Content/themes/base/jquery.ui.theme.css" ) ); } } } // FilterConfig.cs namespace Microshaoft.WebMvc { using System.Web.Mvc; public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } } } // RouteConfig.cs namespace Microshaoft.WebMvc { using System.Web.Mvc; using System.Web.Routing; public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute ( name : "Default", url : "{controller}/{action}/{id}", defaults : new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } } // WebApiConfig.cs namespace Microshaoft.WebApi { using System.Web.Http; public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute ( name : "DefaultApi", routeTemplate : "services/restful/api/{controller}/{id}", defaults : new { id = RouteParameter.Optional } ); // Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable<T> return type. // To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries. // For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712. //config.EnableQuerySupport(); // To disable tracing in your application, please comment out or remove the following line of code // For more information, refer to: http://www.asp.net/web-api config.EnableSystemDiagnosticsTracing(); } } } // Global.asax.cs // Global.asax /* <%@ Application Language="C#" Inherits="Microshaoft.Web.Global" %> */ namespace Microshaoft.Web { using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; using Microshaoft.WebMvc; using Microshaoft.WebApi; // Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit http://go.microsoft.com/?LinkId=9394801 public class Global : HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); // comment for Web API //BundleConfig.RegisterBundles(BundleTable.Bundles); } } } |