标题确实总结了我的问题。我曾经使用过这两种技术,但是我不确定哪一种提供的技术与另一种技术有很大的不同。在本质上:
在设计一个 Restful 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。通过使用MVC的自定义管道(而不是System.Web提供的管道),MVC也可以达到较低的内存使用率。
因此,展望 future ,MVC和Web API之间没有区别。
关于asp.net-mvc - Web API和ASP MVC之间的主要区别是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16523970/