使用ASP.NET MVC,通常有AJAX代码(例如jQuery)从服务器调用Web服务而不刷新页面.使Web服务RESTful是很自然的.似乎有两种方法可以去.首先,ASP.NET MVC URI是RESTful,很容易使一些Controller/Action充当Web服务方法.其次,从版本3.5开始,WCF可以是RESTful.
那么,这两种方式的利弊是什么?
对ASP.NET MVC的请求将通过ASP.NET管道.这会使它比WCF慢吗?
如果您已经在网站的其余部分使用ASP.Net MVC,我认为使用相同的框架进行AJAX调用也是有意义的.
关于ASP.Net管道,我假设你担心整个页面生命周期的事情.仅当您使用带有WebFormViewEngine的Views时,才会执行页面生命周期.该框架提供了JsonResult,可以轻松地对动作结果进行JSON序列化,从而完全绕过ASP.Net页面生命周期.类似的类可用于XML,RSS等.
在我的博客http://shouldersofgiants.co.uk/Blog/我已经整理了一系列关于使用ASP.Net MVC提供RESTful Web服务的系列,如果有帮助的话.