使用ASP.NET MVC控制器,您可以公开不同格式的数据。AspNetWebAPI是专门为创建API而专门设计的,但是我可以使用MVC控制器轻松地做到这一点,我尚不清楚在什么情况下它会比传统的MVC控制器更好。我对WebApi的好处显而易见并且应该在我的应用程序中添加另一个复杂性层的场景感兴趣。
问题:就MVC而言,使用asp.net WebApi有哪些优点和/或缺点?
使用ASP.NET MVC控制器,您可以公开不同格式的数据。AspNetWebAPI是专门为创建API而专门设计的,但是我可以使用MVC控制器轻松地做到这一点,我尚不清楚在什么情况下它会比传统的MVC控制器更好。我对WebApi的好处显而易见并且应该在我的应用程序中添加另一个复杂性层的场景感兴趣。
问题:就MVC而言,使用asp.net WebApi有哪些优点和/或缺点?
Answers:
WebApi允许创建可以通过HTTP而不是通过诸如WCF或SOAP之类的正式服务公开的服务。另一个区别是WebApi如何使用Http协议并使它真正成为一流的Http公民。
更新: ASP.NET Core Web API已集成到MVC项目类型中。本ApiController
类合并到Controller
类。有关更多信息,请访问:https : //wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
比较,讨论和教程的相关链接:
Asp.Net Web API VS Asp.Net MVC 1。Asp.Net MVC用于创建同时返回视图和数据的Web应用程序,而Asp.Net Web API用于通过简单且仅返回数据而不返回视图的简单方式创建完整的HTTP服务。
2。Web API有助于在.NET Framework上构建基于REST的服务,它还支持内容协商(这是确定客户端可以接受的最佳响应格式数据。它可以是JSON,XML,ATOM或其他格式化数据),不在MVC中的自托管。
3。Web API还负责根据请求中的Accept报头返回特定格式的数据,如JSON,XML或任何其他格式,您不必担心。MVC仅使用JsonResult返回JSON格式的数据。
4。在Web API中,请求被映射到基于HTTP动词的动作,但是在MVC中,请求被映射到动作名称。
5。Asp.Net Web API是新框架,是ASP.NET核心框架的一部分。Web API中存在的模型绑定,过滤器,路由和其他MVC功能与MVC不同,并且存在于新的System.Web.Http程序集中。在MVC中,这些功能存在于System.Web.Mvc中。因此,Web API也可以与Asp.Net一起使用,并可以用作独立的服务层。
6。您可以在单个项目中混合使用Web API和MVC控制器来处理高级AJAX请求,这些请求可能以JSON,XML或任何其他格式返回数据并构建完整的HTTP服务。通常,这将称为Web API自托管。
7。当您将MVC和Web API控制器混合使用并且想要实现授权时,则必须创建两个过滤器,一个用于MVC,另一个用于Web API,因为两者是不同的。
8。此外,Web API是轻量级体系结构,除Web应用程序外,它还可以与智能手机应用程序一起使用。
原始资料在这里
相似点
1)两者都继承自ihhtphandler的asyncrequest,因此基本上apicontroller或mvc控制器都是web.http的包装器。
区别:1)mvc控制器非常繁琐,如果您可以仔细查看其定义,则可以看到已使用了多少接口和基本代码,web api是较轻的控制器,并通过其传递的参数区分请求(是的,我们也可以更改它! )
2)MVC控制器具有太多功能,例如它返回视图,操作结果,javascript结果等,但是在Web api中具有JSON或XML
3)API用于实现Restful(获取,发布,放置,删除,选项)服务,该服务可以独立于任何地方托管,而无需依赖于视图,MVC控制器无法支持它,因为它与视图紧密集成。
ASP.NET MVC和ASP.NET Web API两者均用于不同目的
ASP.NET
ASP.NET提供了三种用于创建Web应用程序的框架:Web窗体,ASP.NET MVC和ASP.NET Web页。这三个框架都很稳定和成熟,您可以使用其中任何一个来创建出色的Web应用程序。无论选择哪种框架,都将在各处获得ASP.NET的所有好处和功能。
每个框架针对不同的开发风格。选择哪种类型取决于您的编程资产(知识,技能和开发经验),所创建的应用程序类型以及您喜欢的开发方法的组合。这三个框架将在ASP.NET的将来版本中得到支持,更新和改进。
MVC
ASP.NET MVC为您提供了一种强大的,基于模式的方式来构建动态网站,该方式可以使关注点清晰分离,并可以完全控制标记,从而实现令人愉悦的敏捷开发。ASP.NET MVC包含许多功能,这些功能可实现对TDD友好的快速开发,以创建使用最新Web标准的复杂应用程序。
网络API
ASP.NET Web API是一个框架,可以轻松地构建可访问包括浏览器和移动设备在内的广泛客户端的HTTP服务。ASP.NET Web API是在.NET Framework上构建RESTful应用程序的理想平台。
您可以在此处阅读更多表格 http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html
通常,WebAPI用于数据服务,其中MVC可以生成更多类型的输出。
WebAPI无疑简化了我们创建数据服务的方式。为此目的,它既干净又容易。MVC附带了更多工具。
MVC可以生成任何输出,WebAPI可以输出。从模板生成输出可以在MVC中轻松实现。我找不到在WebAPI中这样做的理由。PHP开发人员和旧的ASP程序员可能从过去就知道这种态度,您可以在其中构建与C#代码有关的HTML文件。
WebAPI-数据MVC-数据,UI / HTML,XHTML,文件,模板等。