現在我們有很多虛擬MVC控制器可以使用Web組件(vuejs)返回簡單的視圖。我試圖重構這個,看看我們是否可以使用無控制器的razor插件,但我不想在瀏覽器請求路由時執行實際的服務邏輯,因爲組件已經這樣做了。一個例子:ServiceStack無控制器Razor視圖 - 不執行服務的返回視圖
/account/edit/1
是一個標準的MVC控制器 - >被關聯到具有這樣的事情<account edit="1" />
,使一個AJAX調用/api/account/get/1
的圖。我想添加服務堆棧Razor引擎,以便我們可以使用:
/api/account/get/1
(我們將刪除api部分或添加替代路由),這不會執行邏輯,但會執行安全屬性,所以我們可以刪除不使用的標準MVC控制器。我知道我們可以爲此添加不同的服務,但我寧願使用相同的端點,只是不執行它,但返回剃鬚刀。
任何想法?
不是我想聽到的答案,但基本上我們不能做我們想做的事情,相反我們會創建一些虛擬服務堆棧服務來返回仍然消除控制器的正確視圖。
我不確定這是否回答我的問題。我只是用作爲一個例子。假設路由已設置,並指向獲取該ID帳戶的正確服務。在生成剃鬚刀之前,服務的邏輯是否會被調用?這正是我想要避免的,因爲我們所有的視圖都有像微型spa應用程序這樣的組件,它們會自行調用以獲取數據。 – lucuma
@lucuma如果他們指向一個服務,它總是在視圖前執行。 Razor視圖是服務響應的[HTML內容類型表示](http://docs.servicestack.net/architecture-overview),但No Ceremony選項允許您繞過需要服務並直接執行Razor頁面因爲頁面與路線相匹配。還要確保你知道[內容頁vs查看頁面](https://stackoverflow.com/a/13206221/85785) – mythz
@lucuma之間的區別如果你正在構建SPA,你通常不需要HTML視圖,只需要想要通過Ajax訪問JSON響應,如果您使用JSON客戶端,ServiceStack將自動返回服務的JSON響應。 – mythz