标题确实总结了我的问题。我已经使用了这两种技术,但我不确定其中一种技术与另一种技术有何显着不同。在本质上:
在设计一个宁静的 Web 应用程序时,选择 ASP MVC 或 Web API 时应考虑哪些标准和/或指南?
Purpose
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 默认情况下假定基本类型来自查询字符串,非基本类型来自表单。它还假设您只想读取表单正文一次,而不进行缓存,以获得更低的内存使用量和更好的性能。
违背默认值需要额外的工作,这对我来说根本没有意义。
EDIT:
另外,GET AJAX 请求默认被 MVC 的 JsonResult 阻止以防止 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 之间将不再有区别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)