簡體   English   中英

用剃須刀選擇“ umbraco項目”

[英]Select “umbraco item” using razor

我想編寫一個剃刀宏MySelectMacro ,它選擇要渲染的umbraco:item

在這種情況下,我的簡單結構是兩個頁面-MasterPage和TextPage- ,而TextPage包含富文本編輯器類型的兩個字段-field_1和field_2-

這是我的嘗試,不起作用,

這是TextPage模板:

<asp:Content ContentPlaceHolderId="MainPageContent" runat="server">
        <umbraco:Macro Alias="MySelectMacro" runat="server" />
</asp:Content>

這是宏MySelectMacro

@if (condition)
{
    <umbraco:Item field="field_1" runat="server" />
}
else
{
    <umbraco:Item field="field_2" runat="server" />
}

nb:我是umbraco和剃須刀的新手

您不能在剃刀模板內使用服務器標簽。 標簽,例如:

<umbraco:Item field="field_1" runat="server" />

但是你可以打電話

@Model.field_1

最終版本應如下所示:

@if (condition)
{
    @Model.field_1
}
else
{
    @Model.field_2
}

查看有關umbraco中的剃刀宏的帖子: http : //www.diplo.co.uk/blog/2011/6/17/using-razor-in-umbraco-47.aspx

我只是偶然發現了這個答案,而對於其他像我這樣閱讀的人:在2015年及以后,它不是@Model.field而是@Dictionary["field"]

解釋如下:

https://our.umbraco.org/documentation/reference/templating/macros/razor/using-dictionary-items

無論如何,用配額括起來並用方括號括起來的字段名稱不會干擾其余的ASP腳本,即使該腳本包含特殊字符也是如此。

您不能混合使用WebForm和Razor語法!

在新的Razor語法中,舊umbraco:item的等效項為:

@Umbraco.Field("field_1")

您還可以傳入各種參數,包括帶段標簽標記:

@Umbraco.Field("field_1", removeParagraphTags = true)

暫無
暫無

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

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