首页 > 解决方案 > 如何根据“按字段搜索”值获取搜索结果

问题描述

如何根据选择的下拉值指定搜索字段?

我有这个下拉列表来指定哪个文件

 @(Html.Kendo().DropDownList()
       .HtmlAttributes(new { @class = "mr-2" })
       .Name("SearchBy")
       .DataTextField("Text")
       .DataValueField("Value")
       .BindTo(new List<SelectListItem>() {
          new SelectListItem() {
               Text = "CompanyName",
               Value = ""
              },
          new SelectListItem() {
               Text = "Address",
               Value = ""
             }
            })
          )

我的条件是:

如果用户从“搜索方式”下拉列表中选择,Name那么我需要搜索结果仅来自CompanyName用户选择“地址”我需要搜索来查找AddressLine1、、、、AddressLine2CityState

我有这个 linq 查询接收两个参数,S

  var company = await Context.CompanySearch.AsNoTracking()
                        .Where(p => p.CompanyName.Contains(request.searchTerm) && p.compType == request.compType 
                        || (p.AddressLine1.Contains(request.searchTerm) && p.compType == request.compType )
                        || (p.AddressLine2.Contains(request.searchTerm) && p.compType == request.compType )
                        || (p.City.Contains(request.searchTerm) && p.compType == request.compType)
                        || (p.State.Contains(request.searchTerm) && p.compType== request.compType))
                        .Distinct()
                        .ToListAsync();

我的控制器看起来像这样

   [HttpGet]      
    public async Task<IActionResult> GetCompanies(string searchTerm, string compType )
    {
        var result = await EntitiesService.GetEntitiesBySearchTerm(searchTerm, compType);
        return Json(result);
    }

我必须传递第三个参数Searchby吗?如果是这种情况,我如何更新 linq 查询以指定要查找的字段?

标签: jqueryasp.netasp.net-mvcasp.net-core

解决方案


推荐阅读