我有一个自定义内容模块,其字段(HistoryBody和TestFieldLong)是长文本和必需的。在我的内容小部件中,此字段具有富文本编辑器。此类型的每个内容都有一个嵌入到该字段中的图像。
这是将使用的自定义列表模板:
@model Telerik.Sitefinity.Frontend.DynamicContent.Mvc.Models.DynamicContentListViewModel
@using Telerik.Sitefinity.Frontend.DynamicContent.WidgetTemplates.Fields.Helpers;
@using Telerik.Sitefinity;
@using Telerik.Sitefinity.Data.ContentLinks;
@using Telerik.Sitefinity.Frontend.Mvc.Helpers;
@using Telerik.Sitefinity.Frontend.Mvc.Models;
@using Telerik.Sitefinity.Web.DataResolving;
@using Telerik.Sitefinity.Model.ContentLinks;
@using Telerik.Sitefinity.Modules.Pages;
@Html.Script(ScriptRef.JQuery, "top", false)
<h3>Company History</h3>
<div class="@Model.CssClass">
@foreach (var item in Model.Items)
{
<div class="" @Html.InlineEditingAttributes(Model.ProviderName, Model.ContentType.FullName, (Guid) item.Fields.Id)>
<h3 class="sf-event-title">@item.Fields.Title</h3>
@item.Fields.TimelineLabel<br />
<p @Html.InlineEditingFieldAttributes("HistoryBody", "LongText")>@Html.Raw(item.Fields.HistoryBody)</p>
<p @Html.InlineEditingFieldAttributes("TestFieldLong", "LongText")>@Html.Raw(item.Fields.TestFieldLong)</p>
</div>
}
@if (Model.ShowPager)
{
@Html.Action("Index", "ContentPager", new
{
currentPage = Model.CurrentPage,
totalPagesCount = Model.TotalPagesCount.Value,
redirectUrlTemplate = ViewBag.RedirectPageUrlTemplate
})
}
</div>
两个LongText字段都配置为使用RichText编辑...
我将小部件放在页面上并将其配置为使用上面显示的自定义列表模板并设置分页以一次仅显示小部件上的1个项目。因此,用户不会看到摘要,而是会看到包含图像的完整信息......并且可以移动到不同的页面以查看更多信息......这就是计划......但是图像没有显示。占位符看起来好像无法找到图像。
我甚至尝试在内容中添加自定义图片字段,但我无法通过自定义列表模板显示。
任何关于如何纠正此问题的想法或指示都将不胜感激。
这是Sitefinity v9.x ...
答案 0 :(得分:1)
如果要解析链接,请在模板中使用LinkParser.ResolveLinks()方法
在你的情况下应该是:
<p @Html.InlineEditingFieldAttributes("HistoryBody", "LongText")>@Html.Raw(LinkParser.ResolveLinks((string)item.Fields.HistoryBody,DynamicLinksParser.GetContentUrl,null,SystemManager.IsInlineEditingMode))</p>
<p @Html.InlineEditingFieldAttributes("TestFieldLong", "LongText")>@Html.Raw(LinkParser.ResolveLinks((string)item.Fields.TestFieldLong,DynamicLinksParser.GetContentUrl,null,SystemManager.IsInlineEditingMode))</p>
这个使用:
using Telerik.Sitefinity.Modules.GenericContent;
using Telerik.Sitefinity.Services;
using Telerik.Sitefinity.Web.Utilities;