如果查询为空,我正在检查搜索框。如果为空,则显示查询空错误消息。但是,它绕过了我对空查询的所有检查并直接进入我的 ExecuteQuerySearch 方法,然后在位于我的 SearchHelper.cs 中的搜索方法中出现错误(类似方法不支持 null。)。它不喜欢空对象正在通过我的搜索方法
//If no query show empty query error
if (query == Request.QueryString[QueryStrings.EmptyQuery] || query.Equals(null) || string.IsNullOrEmpty(query) || query == TranslateText(Dictionary.Keys.KeywordSearch))
{
phNoQuery.Visible = true;
return;
}
_totalResults = string.IsNullOrEmpty(scope) ? SearchHelper.ExecuteQuerySearch(query, Model.Divisions).ToList() : SearchHelper.ExecuteQuerySearch(query).ToList();
resultsCount = _totalResults.Count();
SearchHelper.cs 中我的 ExecuteQuerySearch 方法的一部分:
using (var searchContext = ContentSearchManager.GetIndex(GetSitecoreSearchIndex()).CreateSearchContext())
{
//Errors at allItems
var allItems = searchContext.GetQueryable<SearchItem>()
.Where(GetQueryExpression(QueryType.Content, query))
.Where(predicate)
.Where(GetContent())
.GetResults();
var hits = allItems.Hits.Where(x => x.Document.AbstractTitle != null).ToList();
return hits.Select(x => x.Document).ToList();
}
我想在执行搜索方法之前进行检查,但感谢任何建议或帮助。谢谢!