2013-12-17 62 views
0

我正在使用Orchard 1.7.2並且在我的自定義模塊中我有許多用[Themed]屬性裝飾的控制器操作。Orchard CMS - 如何一起使用主題和httppost屬性

我的問題是,當我用[HttpPost]屬性修飾其中的任何一個時,使用該動作時主題停止工作。

有沒有人遇到過這個?

回答

0

當然,你告訴它不應該爲獲取請求運行的操作,只是爲了發佈請求。標記爲post的操作用於ajax請求或將表單發​​送到服務器。 (當你指出合理的做一個頁面的發佈請求時,我刪除了該部分,但不再推薦)

嘗試將IWorkContextAccessor,RequestContext和IThemeManager注入到您的構造函數中,然後在您的操作中執行一些操作像這樣:

contextAccessor.GetContext().CurrentTheme = themeManager.GetRequestTheme(requestContext); 

我不知道這是否有效,但至少你有一個起點。

+0

否... POST請求可以合法地返回響應,並且該響應可以是HTML文檔。想想你提交表單時......表單的「動作」網址完全能夠返回一個頁面供您查看。我的問題是如何讓返回的頁面爲主題? – Hades

+0

你說的對,但是我知道Orchard遵循PRG模式(http://en.wikipedia.org/wiki/Post/Redirect/Get)。每個ASP.NET MVC應用程序都應該遵循這種模式。我會編輯我的答案,把一些可以工作的代碼。 – jmgomez