Sitefinity 自定义列表模板嵌入图片不显示
Sitefinity custom list template embedded image does not display
我有一个自定义内容模块,其中的字段(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...
如果你想解析链接,在你的模板中,你需要使用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;
我有一个自定义内容模块,其中的字段(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...
如果你想解析链接,在你的模板中,你需要使用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;