2014-03-04 91 views

回答

1

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); 

但是,我可以想象這會變得相當混亂。你可能想重新思考你是如何做到這一點的。雖然有人可能有更好的解決方案:)

+0

我們有2個自定義主題,一個用於桌面版本的網站,另一個用於移動。桌面主題包含內容區域,但我們故意將其排除在移動主題之外,因此它不會輸出用於桌面站點的任何窗口小部件。所以MobileContent區域是移動主題的主要內容區域。 –

+0

編輯,雖然我會建議保持內容區域;) – Hazza

+0

但是,如果我保留內容區域,我會在我以前的評論中遇到問題。你知道一種避免它的方法嗎?例如,我們可以通過隱藏小部件來解決這個問題,但我們希望避免由於帶寬原因而將小部件完全發送到瀏覽器 –

相關問題