代码之家  ›  专栏  ›  技术社区  ›  Kaj

如何使用Asp.net核心mvc在搜索功能中添加多个选项

  •  0
  • Kaj  · 技术社区  · 4 年前

    我知道简单的搜索结果如下:

    <form asp-controller="User" asp-action="search">
          <input type="text" name="search"/>
          <button class="btn btn-primary" id="searchBtn">SÖK</button>
    </form>
    

    public class User : Controller
    {
        public IActionResult Search(string search = null)
            {
                IEnumerable<User> users;
                if (!string.IsNullOrEmpty(search))
                {
                    users = _users.GetAllUsers().Where(s => s.Email.ToLower().Contains(search.ToLower()));
    
                }
                else
                {
                    users = _users.GetAllUsers();
                }
                return View("index", users);
            }
    }
    

    但我想做的是添加指定搜索字段的功能,如: 按姓名

    public IActionResult Search(string search = null, string field = null)
            {
                IEnumerable<User> users;
                if (!string.IsNullOrEmpty(search))
                {
                     if (!string.IsNullOrEmpty(field))
                        {
                            if(field == "ByEmail")
                            {
                               //I'll modify this to not get all rows from the database, but wrote it 
                               //like that for simplicity 
                               users = _users.GetAllUsers().Where(s => s.Email.ToLower().Contains(search.ToLower()));
                            }
                            else if(field =="ByName")
                            {
                               users = _users.GetAllUsers().Where(s => s.Name.ToLower().Contains(search.ToLower()));
                            }
    
                       }
                       else
                       {
                           users = _users.GetAllUsers();
                       }
                else
                {
                    users = _users.GetAllUsers();
                }
                return View("index", users);
            }
    

    非常感谢。

    0 回复  |  直到 4 年前
        1
  •  1
  •   Kaj    4 年前

    没关系,我知道了。 视图将类似于:

    @using (Html.BeginForm("Search", "User"))
           {
              <input type="text" name="search"/>
              <select class="form-control" name="field">
                  <option value="Name">Name</option>
                  <option value="EmailAddress">Email Address</option>
              </select>
               <button class="btn btn-primary" id="searchBtn">Search</button>
           }
    

    而行动将是相同的(正如我在问题中所写的)。 这一切都是关于为输入类型添加名称 哪个应该与操作中的名称匹配 谢谢。