[英]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.