代码之家  ›  专栏  ›  技术社区  ›  Tig7r

如何在自定义搜索结果模块中用html显示DNN搜索结果对象数组

  •  0
  • Tig7r  · 技术社区  · 6 年前

    如何从C#以HTML格式显示这些对象结果?

    目前,我们的搜索结果模块仅通过ajax从ERP系统中检索产品并以网格模式显示它们。我现在想在这些来自DNN本身的网格结果的顶部显示页面搜索结果,因此这些将是页面上的关键字。

    我在玩下面的游戏,但我认为我做得不对:searchResults.Results[0].Desciption?

    我找不到例子

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  0
  •   Tig7r    6 年前

    我使用了foreach函数来实现我所要做的:

    txtSearchQueryString.Text = GetQuery;
    
                    var query = new SearchQuery
                    {
                        PageSize =  50,
                        PageIndex = (1 > 0 ? 1 : 1),
                        SortField = SortFields.Relevance,
                        SortDirection = SortDirections.Descending,
                        KeyWords = GetQuery,
                        PortalIds = new List<int> { PortalSettings.PortalId },
                        WildCardSearch = false,
                    };
    
                    TotalPageResults = "0";
                    var searchResults = SearchController.Instance.ModuleSearch(query);
    
                    if(searchResults != null)
                    {
                        TotalPageResults = searchResults.TotalHits.ToString();
                        var sb = new StringBuilder();
                        sb.AppendLine("<div class='page_results'><span class='page_results_text'>Page Results:</span></br>");
                        foreach(var result in searchResults.Results)
                        {
                            sb.AppendLine($"</br><span><a href='{result.Url}' class='page_results_link'>{result.Title}</a></span></br><span class='page_result_description'>{result.Description}</span></br><span class='page_results_date_modified'>Updated:{result.DisplayModifiedTime}</span></br>");
                        }
                        sb.AppendLine("</div>");
    
                        DNNSearchResuls = sb.ToString(); 
                    }