MVC ASP.NET搜索过滤器由int

问题描述 投票:0回答:2

是否可以通过搜索int来过滤视图记录?它只是一个字符串,但是当我尝试任何调整它来绘制所有匹配int的记录时我得到错误:DbComparisonExpression需要具有可比类型的参数。参考返回视图。

控制器:

 public ActionResult Index(string sortOrder,string search)
      {
        ViewBag.TimeSortParam = String.IsNullOrEmpty(sortOrder) ? "Time_desc" : "";
        ViewBag.PrioritySortParam = sortOrder == "Priority" ? "Priority_desc" : "";
        var incidents = from s in db.Incidents.Include(i => i.Defect).Include(i =>   i.Operator)
                        select s;

        if (!String.IsNullOrEmpty(search))
        {
            incidents = incidents.Where(s => s.IncidentID.Equals(search));
        }
 return View(incidents.ToList());

视图

Find by id: @Html.TextBox("Search")

我可以看到问题是我正在使用字符串,但我无法找到int的解决方案

asp.net-mvc asp.net-mvc-5
2个回答
0
投票

在您的陈述中,更改为:

s.IncidentID==Convert.ToInt32(search)


0
投票

如果有人对此感兴趣,虽然我不确定它是通过int过滤的最有效方法:

public ActionResult Index(string sortOrder, int? search)
    {
        ViewBag.TimeSortParam = String.IsNullOrEmpty(sortOrder) ? "Time_desc" : "";
        ViewBag.PrioritySortParam = sortOrder == "Priority" ? "Priority_desc" : "";
        var incidents = from s in db.Incidents.Include(i => i.Defect).Include(i => i.Operator)
                        select s;
        if (search != null)
        {
            incidents = incidents.Where(s => s.IncidentID == (search));
        }}
 return View(incidents.ToList());
© www.soinside.com 2019 - 2024. All rights reserved.