使用Asp.net core mvc的多搜索选项搜索功能

使用Asp.net core mvc的多搜索选项搜索功能,asp.net,asp.net-mvc,asp.net-core,razor-pages,Asp.net,Asp.net Mvc,Asp.net Core,Razor Pages,我正在尝试向项目中的搜索功能添加多个选项。 我知道简单的搜索结果如下: <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 :

我正在尝试向项目中的搜索功能添加多个选项。 我知道简单的搜索结果如下:

<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);
        }
}
@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>
       }

SÖK
控制器将类似于:

<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);
        }
}
@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>
       }
公共类用户:控制器
{
公共IActionResult搜索(字符串搜索=null)
{
i无数用户;
如果(!string.IsNullOrEmpty(搜索))
{
users=\u users.GetAllUsers()。其中(s=>s.Email.ToLower()。包含(search.ToLower());
}
其他的
{
users=_users.GetAllUsers();
}
返回视图(“索引”,用户);
}
}
但我想做的是添加指定搜索字段的功能,如:电子邮件地址或按名称。 我想要实现的是添加一个DropDownList来添加选择要查看哪个字段的功能。行动将类似于:

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);
        }
公共IActionResult搜索(字符串搜索=null,字符串字段=null) { i无数用户; 如果(!string.IsNullOrEmpty(搜索)) { 如果(!string.IsNullOrEmpty(字段)) { 如果(字段==“通过电子邮件”) { //我将对此进行修改,以不从数据库中获取所有行,而是编写它 //为了简单起见,我喜欢那样 users=\u users.GetAllUsers()。其中(s=>s.Email.ToLower()。包含(search.ToLower()); } else if(字段==“按名称”) { users=\u users.GetAllUsers()。其中(s=>s.Name.ToLower().Contains(search.ToLower()); } } 其他的 { users=_users.GetAllUsers(); } 其他的 { users=_users.GetAllUsers(); } 返回视图(“索引”,用户); } 但如何在视图中实现此场景? 如何通过视图中的窗体将多个参数传递给控制器?
谢谢。

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

<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);
        }
}
@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>
       }
@使用(Html.BeginForm(“搜索”、“用户”))
{
名称
电子邮件地址
搜索
}
而行动将是相同的(正如我在问题中所写的)。 这一切都是关于为输入类型添加一个名称,该名称应与操作中的名称相匹配,并将其转发给操作。 非常感谢