5
我有ContainerWidget和具有ShowAllLinkCaption字段的自定義容器類型。 現在我只有一個解決方案,它看起來很醜。 在Container Widget視圖上獲取此字段值的正確方法是什麼?Orchard CMS:從視野中獲取字段值的正確方法?
@*Latest news widget*@
@using Orchard.ContentManagement
@using Orchard.Utility.Extensions
@{
var contentId = (int)Model.ContentItem.ContainerWidgetPart.Record.ContainerId;
IContentManager contentManager = WorkContext.Resolve<IContentManager>();
var customListContentItem = contentManager.Get(contentId);
var showAllLinkCaptionField = customListContentItem.Parts.SelectMany(p => p.Fields).First(f => f.Name == "ShowAllLinkCaption");
var showAllLinkCaptionText = showAllLinkCaptionField.Storage.Get<string>(null);
}
@Display(Model.Content)
@Html.Link(showAllLinkCaptionText, Url.ItemDisplayUrl(customListContentItem))
更好的幫助來自伯特蘭......我不知道如何能夠沒有他的幫助下得出這個結論! –
伯特蘭給了我一直在尋找的一個偉大的anwser!烏節的「聖盃」和什麼讓烏節如此之大... 但是你知道有一個「但」來了,是不是? ;) 我有這個:'currentUser.UserCulturePart.Fields [0] .Value;' 它的工作很棒。 我也有一個foreach循環遍歷這個內容部分的字段並列出它的名字。它只有一個名稱爲「Culture」的字段。但是,如果我嘗試像這樣訪問它: 'currentUser.UserCulturePart.Culture.Value'它拋出一個錯誤,它不包含文化... 任何想法? –
關於我最後的評論。我在我的migrations.cs中使用了.WithField(「Culture」)...或許值得注意的是,在保存它們時將.Trim()由於這是非常難以調試的,並且使用其中有空格的字段名是不可能的。我已經設法在字段名稱中使用空格來分解一些代碼。 –