按标题,类别,喜欢,不喜欢和发布日期进行搜索

时间:2019-05-13 19:24:36

标签: c# asp.net-core

我想按标题,类别,喜欢,不喜欢和发布日期搜索图片。按标题和类别工作正常,但是按喜欢和不喜欢的方式总是在我按项目默认值启动时始终是值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);
    }

1 个答案:

答案 0 :(得分:0)

您的“日期比较”可以修改为:

DbFunctions dfunc = null;
if (searchDate!= null)
{
    memyy = memyy.Where(s => SqlServerDbFunctionsExtensions
            .DateDiffDay(dfunc, s.searchDate, searchDate) < 1);

}

对于喜欢/不喜欢,直接在服务器端放置检查点,并检查Index函数中是否获得正确的值(0/1)。