MVC必须是RESTful吗?
有没有办法使用SOAP
模式制作MVC
服务?
输入请求是否实际先进入View
然后进入Controller
然后进入Model
,例如:
Request -> View -> Controller -> Model
但这样做不再是MVC模式。 (那是对的吗?)
我们如何使用SOAP
获得类型化响应,但仍然坚持(或接近)MVC
模式。 MVVM是否会更适合这种情况呢?
答案 0 :(得分:23)
REST描述了如何与应用程序交互,而MVC是您实现应用程序的方式。使用MVC实现的应用程序可以是RESTful,也可以不是。
SOAP是一种与应用程序连接的协议,可以使用MVC实现。
在MVC中,请求进入控制器,该控制器为视图创建模型。
Request -> [Controller] -> Model -> [View] -> Response
答案 1 :(得分:0)
请求被路由到您的控制器上的一个操作,该操作使用一个模型(您定义的模型;它只是一个表示您的操作和视图将对其进行操作的数据的结构)。此操作返回ActionResult
,它通常(但不一定是)ViewResult
(基本上只使用您指定的模型执行您指定的视图页面,如果有的话)。但是,您不必返回View;您可以创建任何类型的ActionResult。您可以返回XML,JSON,SOAP,二进制内容等等。
MVC本质上是宁静的,但它并不严格遵守REST,可以根据您认为合适的方式进行定制。您可以让您的控制器说SOAP,但我的问题是,如果您已经在其他技术(例如WCF)中为您完成了这项工作,为什么会这样做?
答案 2 :(得分:0)
HTTP被设计为RESTful。有关什么是REST的详细讨论是here。 MVC对RESTful没有限制。 ASP.Net MVC支持REST风格的Web开发。你可以让你的网站RESTful,这是你的选择。 SOAP是协议。在.Net中最好使用WCF来处理SOAP。 WCF服务可以与ASP.Net MVC应用程序一起部署。但我们在WCF中没有MVC实现。通常,我们根本没有Web / WCF服务中的UI部分。