我想按标题,类别,喜欢,不喜欢和发布日期搜索图片。按标题和类别工作正常,但是按喜欢和不喜欢的方式总是在我按项目默认值启动时始终是值0,并且我仅看到具有喜欢和不喜欢的值等于0的图片,但我不知道该如何更改,请按日期搜索返回所有图片
查看->索引
<form asp-controller="Memy" asp-action="Index" method="get">
<p>
<select asp-for="MemyCategory" asp-items="Model.Categorys">
<option value="">All</option>
</select>
Title: <input type="text" asp-for="SearchString" />
Date: <input type="text" asp-for="SearchDate" />
Like: <input type="number" asp-for="like" />
Dislike: <input type="number" asp-for="dislike" />
<input type="submit" value="Filter" />
</p>
</form>
我负责的控制器和方法
public async Task<IActionResult> Index(string memyCategory,
string searchString, DateTime? searchDate,
int? like, int? dislike)
{
// Use LINQ to get list of genres.
IQueryable<string> genreQuery = from m in db.Memy
orderby m.Category
select m.Category;
var memyy = from m in db.Memy
select m;
if (!string.IsNullOrEmpty(searchString))
{
memyy = memyy.Where(s => s.Title.Contains(searchString));
}
if (like!=null)
{
memyy = memyy.Where(s => s.Like==like);
}
if (dislike != null)
{
memyy = memyy.Where(s => s.Dislike == dislike);
}
if (searchDate!=null)
{
memyy = memyy.Where(s => s.releaseDate.ToString().Contains(searchDate.ToString()));
}
if (!string.IsNullOrEmpty(memyCategory))
{
memyy = memyy.Where(x => x.Category == memyCategory);
}
var memyCategoryyy = new MemyCategoryViewModel
{
Categorys = new SelectList(await genreQuery.Distinct().ToListAsync()),
Memys = await memyy.ToListAsync()
};
return View(memyCategoryyy);
}
答案 0 :(得分:0)
您的“日期比较”可以修改为:
DbFunctions dfunc = null;
if (searchDate!= null)
{
memyy = memyy.Where(s => SqlServerDbFunctionsExtensions
.DateDiffDay(dfunc, s.searchDate, searchDate) < 1);
}
对于喜欢/不喜欢,直接在服务器端放置检查点,并检查Index函数中是否获得正确的值(0/1)。