如何解决记录失败的分页列表搜索
我现在一直在尝试弄清楚如何成功判断我的搜索是成功还是失败了。我应该在搜索失败时记录,也就是在列表中找不到任何内容时。我认为这与 try/catch 解决方案有关。对不起,如果这是一个非常愚蠢的问题,但我一直在环顾四周,如果搜索返回没有数据,我似乎无法找到一种方法。 下面的代码是我用来搜索整个 PaginatedList 的代码。
public async Task<IActionResult> Index(string sortorder,int pageNumber = 1,string searchString = "",string searchString2 = "",string searchString3 = "")
{
var game = from g in _context.Cheats
select g;
ViewData["PlatformSortParam"] = String.IsNullOrEmpty(sortorder) ? "platform_sort" : "";//default sort
ViewData["CurrentFilter"] = searchString;
ViewData["CurrentFilter2"] = searchString2;
ViewData["CurrentFilter3"] = searchString3;
if (!String.IsNullOrEmpty(searchString))
{
game = game.Where(b => b.Game.Contains(searchString));
try
{
}
catch(Exception ex)
{
}
_logger.Log(LogLevel.Warning,(EventId)404,"Search string Failed while trying to search for {searchString}",searchString);
}
if (!String.IsNullOrEmpty(searchString2))
{
game = game.Where(b => b.CheatName.Contains(searchString2));
}
if (!String.IsNullOrEmpty(searchString3))
{
game = game.Where(b => b.Platform.Contains(searchString3));
}
return View(await PaginatedList<Cheats>.CreateAsync(game,pageNumber,10));
//return View(await PaginatedList<Cheats>.CreateAsync(_context.Cheats,10));
}
这是PaginatedList类的代码。
public class PaginatedList<T> : List<T>
{
public int PageIndex { get; private set; }
public int TotalPages { get; set; }
public PaginatedList(List<T> items,int count,int pageIndex,int pageSize)
{
PageIndex = pageIndex;
TotalPages = (int)Math.Ceiling(count / (double)pageSize);
this.AddRange(items);
}
public bool PrevIoUsPage
{
get
{
return (PageIndex > 1);
}
}
public bool NextPage
{
get
{
return (PageIndex < TotalPages);
}
}
public static async Task<PaginatedList<T>> CreateAsync(IQueryable<T> source,int pageSize)
{
var count = await source.CountAsync();
var items = await source.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync();
return new PaginatedList<T>(items,count,pageIndex,pageSize);
}
}
解决方法
我用来记录它。不确定如何使用 try/catch 仍然如此,但这适用于我的解决方案。
if (game.Count() == 0)
{
_logger.Log(LogLevel.Warning,(EventId)404,"Search string failed while trying to search for {searchString}",searchString);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。