搜索功能在 Asp.net Core 中不起作用

Search function does not work in Asp.net Core

这是最重要的更改,没有此搜索功能将不起作用

没有这个他们就找不到你要搜索的字符串

并在您的 url 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>

根据你之前的问题,你似乎想 在您的导航栏上实施搜索选项。所以你错过了这个 您认为的两个属性。 name="SearchString" value="@ViewData["CurrentFilter"]".

工作原理

当您提交以下内容时 form 它会 submit 您的用户搜索 输入已设置为 SearchStringname 属性。所以在 您的控制器您将收到 string searchString 的值 这将过滤您的搜索结果和 return 新视图

<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>

控制器

if (!String.IsNullOrEmpty(searchString))
{
    members = members.Where(m => m.Name.Contains(searchString) || m.Gender.Contains(searchString));

    return View(members);
}

注意:上面提交的键name="SearchString"将传递到那里,return具有匹配的搜索键值结果的新视图。

输出