簡體   English   中英

創建一個依賴於Umbraco母版頁的“普通”ASP.NET頁面

[英]Create a “normal” ASP.NET page which depends on an Umbraco master page

在Umbraco中是否可以創建一個繼承主要Umbraco母版頁的普通webforms頁面?

我的客戶需要一些復雜的功能,需要在CMS的上下文之外的頁面中完成。

我想知道是否可以從“普通”頁面的構造函數中手動啟動Umbraco上下文。 目前我剛收到錯誤:

拋出了類型'System.Web.HttpUnhandledException'的異常。 ---> System.NullReferenceException:對象引用未設置為對象的實例。 at umbraco.item..ctor(IDictionary elements,IDictionary attributes)at umbraco.presentation.templateControls.ItemRenderer.GetFieldContents(Item item)at umbraco.presentation.templateControls.ItemRenderer.ParseMacros(Item item)at umbraco.presentation.templateControls.Item .OnInit(EventArgs e)位於System.Web.UI.Control.InitRecursive(Control namingContainer)的System.Web.UI.Control.InitRecursive(Control namingContainer)

謝謝克里斯

您可以使用備用模板直接引用模板,而無需與其關聯的內容頁面。

您可以通過以下方式引用它:

http://www.yourdomain.com/page.aspx?altTemplate=templatename

http://www.yourdomain.com/page/templatename.aspx

這將阻止用戶刪除節點。

這有幫助嗎?

你可以從umbraco母版頁繼承,像這樣手動指定你的主頁

MasterPageFile="../masterpages/umbracoPage.Master"

這適用於.aspx頁面,您在plugin directory中指定此頁面

我認為你可以實現你的要求;

將頁面從Umbraco控制中取出的通常方法是使用web.config鍵umbracoReservedUrls和umbracoReservedPaths - 這些是與4.11.1一起安裝的鍵:

<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/VSEnterpriseHelper.axd" />
<add key="umbracoReservedPaths" value="~/umbraco,~/install/" />

其次,如果您的頂級母版頁不包含umbraco項目或宏或任何內容,您可以在Page PreInit事件期間始終切換到母版頁

protected void Page_PreInit(Object sender, EventArgs e)
{
    this.MasterPageFile = "/umbraco/masterpages/default.master";
}

或者您可以使用@BeaverProj概述的技術。

編輯

看看你的評論我認為你可以獲得umbraco數據,而不是在umbraco'上下文'。 添加對cms.dll和businesslogic.dll的項目引用(umbraco會將它們放入bin中),然后你就可以使用沒有包裝器控件的umbraco框架。 例如,內部editMacro.aspx頁面直接使用框架:

                <asp:DropDownList OnPreRender="AddChooseList" runat="server" ID="macroPropertyType"
                    DataTextFormatString="" DataTextField='macroPropertyTypeAlias' DataValueField="id"
                    DataSource='<%# GetMacroPropertyTypes()%>' SelectedValue='<%# ((umbraco.cms.businesslogic.macro.MacroPropertyType) DataBinder.Eval(Container.DataItem,"Type")).Id %>'>
                </asp:DropDownList>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM