【问题标题】:2sxc blog app posts and DNN search2sxc 博客应用帖子和 DNN 搜索
【发布时间】:2016-10-06 11:04:28
【问题描述】:

在使用 2sxc 博客应用时,我注意到 DNN 搜索结果显示了所有帖子,但帖子标题的链接是主博客页面,而不是实际的帖子链接。

示例搜索结果显示:

页面标题: 我是帖子标题

以上标题的链接是: /博客

什么时候应该: /blog/post/i-am-a-post-title

设法通过在cshtml代码中添加以下内容来修改搜索结果:

@using ToSic.Eav.DataSources
@using ToSic.SexyContent.Search
@using DotNetNuke.Entities.Modules

@functions{

    // Prepare the data - get all categories through the pipeline

    public override void CustomizeData()
    {

    }

    /// <summary>

    /// Populate the search - ensure that each entity has an own url/page

    /// </summary>

    /// <param name="searchInfos"></param>

    /// <param name="moduleInfo"></param>

    /// <param name="startDate"></param>

    public override void CustomizeSearch(Dictionary<string, List<ISearchInfo>> searchInfos, ModuleInfo moduleInfo, DateTime startDate)
    {

        foreach (var si in searchInfos["Default"])
        {
            si.QueryString = "post=" + si.Entity.EntityId;
        }
    }
}

但不是 si.Entity.EntityId 我希望 UrlKey 显示,有什么想法吗?

【问题讨论】:

    标签: dotnetnuke 2sxc


    【解决方案1】:

    简单 - 只需转换为 DynamicEntity - https://github.com/2sic/2sxc/wiki/DotNet-DynamicEntity:

        foreach (var si in searchInfos["Default"])
        {
            si.QueryString = "post=" + AsDynamic(si.Entity).UrlKey;
        }
    

    来自瑞士的爱 :) PS:如果这解决了您的问题,请标记为已回答

    【讨论】:

    【解决方案2】:
    foreach (var si in AsDynamic(searchInfos["Default"]))
        {
            si.QueryString = "post=" + si.UrlKey;
        }
    

    将 searchInfo 设为动态实体后,“Title”之类的属性将起作用。但是“UrlKey”属性不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多