我爲自定義主題創建了LogOn和NotFound視圖的自定義版本,是否可以更改它們在其中呈現的區域?有沒有辦法改變LogOn和NotFound視圖的區域
我試過把<Place LogOn="MobileContent:1"/>
放入placement.info
文件無濟於事。
我爲自定義主題創建了LogOn和NotFound視圖的自定義版本,是否可以更改它們在其中呈現的區域?有沒有辦法改變LogOn和NotFound視圖的區域
我試過把<Place LogOn="MobileContent:1"/>
放入placement.info
文件無濟於事。
LogOn呈現爲內容,我不認爲您可以通過展示位置更改此設置。爲什麼要把它渲染到別的地方?
您是否希望將其他內容與登錄表單一起顯示?您需要爲此創建一個小部件。我做了一個小模塊,雖然如果我說實話,我沒有真正測試過它,我不確定我會信任那麼多^ _ ^但是,代碼是可用的,應該指向正確的方向。
https://modaccountwidgets.codeplex.com/
或者,如果你感覺勇敢,它是在畫廊,準備安裝;)
https://gallery.orchardproject.net/List/Modules/Orchard.Module.Contrib.Mod.AccountWidgets
編輯
登錄只是一個形狀所以你理論上可以覆蓋登錄網址
yield return new RouteDescriptor
{
Priority = 1000,
Route = new Route("Users/Account/LogOn",
new RouteValueDictionary {
{"area", Area},
{"controller", "MyController"},
{"action", "LogOn"},
},
new RouteValueDictionary(),
new RouteValueDictionary { { "area", Area } },
new MvcRouteHandler())
};
然後在這裏創建您的登錄形狀並將其發送到您想要使用IWorkContextAccessor的區域(將其注入到您的新控制器中),例如。
var logon = _orchardServices.New.LogOn().Title(T("Log On").Text);
contextAccessor.GetContext().Layout.Zones["MobileContent"].Add(logon, 1);
但是,我可以想象這會變得相當混亂。你可能想重新思考你是如何做到這一點的。雖然有人可能有更好的解決方案:)
我們有2個自定義主題,一個用於桌面版本的網站,另一個用於移動。桌面主題包含內容區域,但我們故意將其排除在移動主題之外,因此它不會輸出用於桌面站點的任何窗口小部件。所以MobileContent區域是移動主題的主要內容區域。 –
編輯,雖然我會建議保持內容區域;) – Hazza
但是,如果我保留內容區域,我會在我以前的評論中遇到問題。你知道一種避免它的方法嗎?例如,我們可以通過隱藏小部件來解決這個問題,但我們希望避免由於帶寬原因而將小部件完全發送到瀏覽器 –