Dotnetnuke 2sxc博客应用程序帖子和DNN搜索

Dotnetnuke 2sxc博客应用程序帖子和DNN搜索,dotnetnuke,2sxc,Dotnetnuke,2sxc,在使用2sxc博客应用程序时,我注意到DNN搜索结果显示了所有帖子,但帖子标题的链接是主博客页面,而不是实际的帖子链接 示例搜索结果显示: 页面标题: 我是一个职位 以上标题的链接为: /博客 何时应该: /blog/post/i-am-a-post-title 通过向cshtml代码中添加以下内容,成功修改搜索结果: @using ToSic.Eav.DataSources @using ToSic.SexyContent.Search @using DotNetNuke.Entities.M

在使用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;
        }
    }
}
@使用ToSic.Eav.DataSources
@使用ToSic.SexyContent.Search
@使用DotNetNuke.Entities.Modules
@功能{
//准备数据-通过管道获取所有类别
公共覆盖无效自定义数据()
{
}
/// 
///填充搜索-确保每个实体都有自己的url/页面
/// 
/// 
/// 
/// 
public override void CustomizeSearch(字典搜索信息、模块信息、模块信息、日期时间开始日期)
{
foreach(searchInfos[“默认值”]中的var si)
{
si.QueryString=“post=”+si.Entity.EntityId;
}
}
}

但是,我不想让si.Entity.EntityId显示UrlKey,我想知道如何做到这一点吗?

简单-只需转换为DynamicEntity-:

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

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

使searchInfo成为一个动态实体后,类似“Title”的属性就起作用了。但是属性“UrlKey”不起作用。

仍然无法获取UrlKey:(棒极了,热爱瑞士和2sxc模块:)注意:发现它目前只索引第1页请参见
foreach (var si in AsDynamic(searchInfos["Default"]))
    {
        si.QueryString = "post=" + si.UrlKey;
    }