我有一个基于MVC5和WebApi构建的系统。我想创建一个新的控制器。它的功能是返回API类型数据以响应REST请求。它还需要能够作为后端响应到具有按钮的页面,其中按钮用于运行一些快速过程以将数据移动到表中。
据我所知,我可能需要一个WebAPI控制器来处理REST请求,但我错过了传统MVC控制器所带来的功能?
答案 0 :(得分:2)
ApiController
可以返回HttpResponseMessage
,它与RFC2616定义的HTTP响应直接相关。
它可以包含有效内容,HTML,XML,JSON,Atom,jpeg等。
HTTP规范中不允许使用ApiController返回任何内容。
微软在返回“数据”和“视图”之间的区别是由产品放置而不是任何技术限制所驱动的。
答案 1 :(得分:1)
基本上是渲染页面的功能,使用api控制器只能返回数据:
注意如果您使用过ASP.NET MVC,那么您已经熟悉了控制器。它们在Web API中的工作方式类似,但Web API中的控制器派生自ApiController类而不是Controller类。您将注意到的第一个主要区别是Web API控制器上的操作不返回视图,它们返回数据。
因此,如果您要导航到api控制器的url,它只会以特定格式显示某些数据(如Json)。如果您要导航到常规控制器的URL,它将返回一个View,您将在浏览器中看到该html页面。