这是最重要的改变,如果没有这个搜索功能就不起作用
如果没有这个,他们就找不到您要搜索的字符串
并在您的网址中显示像这样的localhost:7276/HomePage/Index?
首先我用这个
<input class="form-control" type="text" placeholder="Search for..." aria-label="Search" aria-describedby="btnNavbarSearch" />
第二个我用这个
<input class="form-control" type="text" placeholder="Search for..." name="SearchString" value="@ViewData["CurrentFilter"]" aria-label="Search" aria-describedby="btnNavbarSearch" />
<form method="get" action="/HomePage/Index" class="d-none d-md-inline-block form-inline ms-auto me-0 me-md-3 my-2 my-md-0">
<div class="input-group sty">
<input class="form-control" type="text" placeholder="Search for..." name="SearchString" value="@ViewData["CurrentFilter"]" aria-label="Search" aria-describedby="btnNavbarSearch" />
<input type="submit" value="Search" class="btn btn-primary" />
</div>
</form>
最佳答案
根据您之前的问题,您似乎正在尝试
在导航栏实现搜索选项。所以你错过了这个
您认为有两个属性。 名称=“搜索字符串”
value="@ViewData["CurrentFilter"]"
。
工作原理
当您提交以下表单
时,它将提交
您的用户搜索
输入已设置为 SearchString
作为 name
属性。所以在
您的 Controller 将收到 string searchString
的值
这将过滤您的搜索结果并返回新 View
<form method="get" action="/Home/Index">
<td style="padding-right:760px">
</td>
<td>
<input class="form-control" type="text" placeholder="Search for..." name="SearchString" value="@ViewData["CurrentFilter"]" aria-label="Search" aria-describedby="btnNavbarSearch" />
</td>
<td>
<input type="submit" value="Search" class="btn btn-primary" />
</td>
</form>
Controller
if (!String.IsNullOrEmpty(searchString))
{
members = members.Where(m => m.Name.Contains(searchString) || m.Gender.Contains(searchString));
return View(members);
}
注意:上面提交的键name="SearchString"
将被传递到那里,并返回具有匹配搜索键值结果的新 View 。
输出
关于c# - 搜索功能在 Asp.net Core 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72487432/