[英]ASP.NET MVC Search Box Not Posting Back to Index
我有一个基本的MVC应用,正在尝试实现一些搜索功能。 当我输入数据并单击“搜索”时,URL会按预期更新,但索引页仍返回所有结果,而不是过滤的结果。 我下面有我的代码,想知道是否有人可以指出为什么会这样? 我不认为根据过去的工作需要单独的Post方法,但是由于我还很新,所以我可能是错的。 谢谢。
INDEX.CSHTML:
<p>
@Html.ActionLink("Create New Employee", "Create")
</p>
<form asp-action="Index" method="get">
<div class="form-actions no-color">
<p>
Find by name: <input type="text" name="searchString" value="@ViewBag.CurrentFilter" />
<input type="submit" value="Search" class="btn btn-default" /> |
<a asp-action="Index">Back to List</a>
</p>
</div>
</form>
控制器:
public ActionResult Index(string searchString)
{
var person = from p in db.Person
select p;
ViewBag.CurrentFilter = searchString;
if (!String.IsNullOrEmpty(searchString))
{
person = person.Where(s => s.LastName.Contains(searchString));
//|| p.FirstName.Contains(searchString));
}
return View(db.Person.ToList());
}
单击搜索时返回的URL:
http://localhost:9999/Person/Index?searchString=smith
因为您要返回错误的结果返回到视图,这指示要从Persons表返回所有行并将其传递给视图,所以将最后一行更改为:
return View(db.Person.ToList());
至:
return View(person.ToList());
以便将过滤后的结果集返回到视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.