不管是因为什么原因,结果是在新出的 MVC中,增加了 WebAPI,用于提供 REST风格的 WebService,个人比较喜欢 REST风格的 WebService,感觉比 SOAP要轻量级一些,而且对客户端的要求也更少,更符合网络数据传输的一般模式,客户端完全摆脱了代理和管道来直接和 WebService进行交互,具体的区别可以参见 Web 服务编程,REST 与 SOAP (一)环境准备 本机的环境是 XP+VS2010,需要安装 VS2010 SP1升级包,MVC4升级包,Vs2010安装 SP1后会影响SQLServer2008的自动提示功能,需要在安装补丁或插件,安装成功后可以新建如下的 MVC WebAPI 项目 (二)概览 新生成的 WebAPI项目和典型的 MVC项目一样,包含 主 要的 Models,Views,Controllers等 文 件夹 和Global.asax文 件 Views对于 WebAPI来说 没 有 太 大 的用途 ,Models中的 Model主 要用于保 存 Service和 Client交互的对象 ,这 些对象 默 认 情 况 下会被 转 换 为 Json格式的数据进行传输,Controllers中的 Controller对应 于WebService来说 是一个 Resource,用于提供服务。和普通的 MVC一样,Global.asax用于配置路由规则 (三)Models 和 WCF中的数据契约形成鲜明对比的是,MVC WebAPI中的 Model就是简单的 POCO,没 有 任何别的东西,如,你可以创建如下的 Model public class TestUseMode { public string ModeKey{get;set;} public string ModeValue { get; set; } } 注意: Model必须提供 public的属性,用于 json或 xml反序列化时的赋值 (四)Controllers MVC WebAPI中的 Controllers和普通 MVC的 Controllers类似,不过不再继承于 Controller,而改为继承 API的 ApiController,一个 Controller可以包含 多个 Action,这 些 Action响应 请求的方法与 Global中配置的路由规则有 关,在后面结束Global时统一说 明 (五)Global 默 认 情 况 下,模板自带了两个路由规则,分别对应 于 WebAPI和普通 MVC的 Web请求,默 认 的 WebAPI路由规则如下 1 routes.MapHttpRoute( 2 name: "DefaultApi", 3 routeTemplate: "api/{controller}/{id}", 4 defaults: new { id = RouteParameter.Optional } 5 ); 可 以 看 到 , 默 认 路 由 使 用 的 固 定 的api作 为 Uri的 先 导 , 按 照 微 软 官 方 的 说 法 , 用 ...