【发布时间】:2020-01-18 18:35:31
【问题描述】:
我正在尝试向我的项目中的搜索功能添加多个选项。 我知道简单的搜索会是这样的:
<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);
}
}
但我正在尝试添加指定搜索字段的功能,例如:电子邮件地址或按名称。 我想要实现的是添加一个 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);
}
但是如何在视图中实现这个场景呢? 如何通过视图中的表单将多个参数传递给控制器? 谢谢。
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-core razor-pages