标题真的总结了我的问题.我已经使用了这两种技术,但我不确定哪种技术与另一种技术有很大不同.在本质上:
在设计宁静的Web应用程序时,在选择ASP MVC或Web API时应考虑哪些标准和/或指导?
解决方法
目的
ASP.NET MVC专注于简化HTML的输出. ASP.NET Web API专注于简化原始数据的输出.
在WebForms世界中,ASP.NET MVC将等同于.aspx页面,ASP.NET Web API将等同于.asmx.
虽然没有什么不可能
虽然可以使Web API输出HTML和MVC输出原始数据,但您还需要额外的工作.例如,在Web API中进行内容协商期间创建其他类来处理text / html,或者添加逻辑来处理MVC中的OData查询.
假设
MVC和Web API的默认假设也不同.默认情况下,MVC假定用户提交的数据可以来自多个源,无论是查询字符串还是表单.
默认情况下,Web API假定基本类型来自查询字符串,而非基本类型来自表单.它还假设您只想在没有缓存的情况下读取表单主体,以降低内存使用率并提高性能.
违背默认值需要额外的工作,对我来说,根本没有意义.
编辑:
此外,默认情况下,MVC的JsonResult阻止GET AJAX请求以防止CSRF,而Web API默认允许GET AJAX请求.
MVC 6更新
MVC 6统一了MVC和Web API,允许您像在MVC中一样返回ViewResult,或者像Web API一样返回对象,框架将负责内容协商,为您创建HTML,JSON或XML.通过使用其自定义管道而不是System.Web提供的内容,较低的内存使用量也会到达MVC.
所以,未来,MVC和Web API之间没有区别.