2012-02-14 84 views
6

MVC必須是REST風格嗎?是MVC REST風格設計

有沒有一種方法,使使用MVC模式的SOAP服務?

請問輸入請求實際上進入View,然後再進入Controller那麼Model如:

Request -> View -> Controller -> Model 

但在這樣做,不再MVC模式。 (這是不是?)

我們怎麼會得到一個使用SOAP鍵入的響應,但仍然堅持(或接近)MVC模式。相反,MVVM會更適合這種情況嗎?

+1

我不明白爲什麼MVC得到如此多的關注。 – duffymo 2012-02-14 10:55:20

+0

@duffymo我同意......這不是我的選擇 – Seph 2012-02-14 13:32:48

+0

@duffymo和Seph>您使用的是什麼技術? – Adi 2013-01-23 07:55:16

回答

21

REST介紹瞭如何與應用程序接口,而MVC是如何實現的應用。使用MVC實現的應用程序可以是RESTful或不是。

SOAP是用於與應用,其可以使用MVC來實現接口的協議。

在MVC中請求進入控制器,其產生用於所述視圖的模型。

Request -> [Controller] -> Model -> [View] -> Response 
+0

爲了使類型化的SOAP工作(例如:WSDL),你仍然需要將這個請求包裝在一個類型安全的包裝器中,不是嗎? – Seph 2012-02-14 13:31:34

0

該請求被路由到控制器,其採用了模型上的動作(其定義,這只是一個代表該用戶的操作,視圖將操作的數據的結構)。這個動作返回一個ActionResult,這通常是但不一定是ViewResult(它基本上只是執行你指定的視圖頁,使用你指定的模型,如果有的話)。但是,您不必返回視圖;你可以創建任何你想要的ActionResult。你可以返回XML,JSON,SOAP,二進制內容等等。

MVC在本質上是寧靜的,但它不是嚴格附着於REST和可定製,以任何你認爲合適的。你可以讓你的控制器講SOAP,但是我的問題是你爲什麼會在其他技術(如WCF)中爲你做這項工作?

0

HTTP被設計爲REST風格。關於什麼是REST的詳細討論是here。 MVC對於RESTful與否沒有限制。 ASP.Net MVC支持REST風格的Web開發。你可以讓你的網站RESTful或不,這是你的選擇。 SOAP是協議。在.Net中最好使用WCF來處理SOAP。 WCF服務可以與您的ASP.Net MVC應用程序一起部署。但是我們沒有在WCF內部實現MVC。一般來說,我們根本沒有Web/WCF服務中的UI部分。