MVC RESTful设计

时间:2012-02-14 10:53:40

标签: .net wcf model-view-controller rest soap

MVC必须是RESTful吗?

有没有办法使用SOAP模式制作MVC服务?

输入请求是否实际先进入View然后进入Controller然后进入Model,例如:

Request -> View -> Controller -> Model

但这样做不再是MVC模式。 (那是对的吗?)

我们如何使用SOAP获得类型化响应,但仍然坚持(或接近)MVC模式。 MVVM是否会更适合这种情况呢?

3 个答案:

答案 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部分。

相关问题