这是一个后续问题,始于here。
快速回顾一下这里发生了什么。我正在尝试按字符串值搜索对象列表,我从硬编码的链接列表中传递出来,如下所示:
@section SideBar{
<ul>
<li> @Html.ActionLink("Astronomy", "SearchMedia", new {searchString = "Astronomy" })</li>
<li> @Html.ActionLink("World", "SearchMedia", new { searchString = "World" })</li>
<li> @Html.ActionLink("Movies", "SearchMedia", new { searchString = "Movies" })</li>
</ul>
}
我将其传递给SearchMedia
方法,如下所示:
public ActionResult SearchMedia(string searchString)
{
var result = db.Medias.ToList().Where(i => i.TagsEnum.ToString() == searchString);
return View(result);
}
尝试在我设置的SearchMedia
视图中查看结果(将大部分HTML代码删除为简短并只留下几行):
@model IEnumerable<PhClub.Models.Media>
@foreach (var b in Model)
{
<p>
<h3> <a href=@Url.Action("Media", new { id = b.Id })>@b.title </a></h3>
@b.description
</p>
}
我创建了几个Media对象并按下现有TagsEnum值的链接。在呈现SearchMedia
视图后,我根本没有得到任何结果。空白页。 .Where()
是最好和最简单的方法,还是有其他选择?也许我的整个方法都是错误的,这是一种像我这样做的常见方式吗?
我在这里想念什么?请帮忙。
P.S。当我在SearchMedia
视图中时,这就是我的地址栏的样子:
http://localhost:62220/Medias/SearchMedia?searchString=Astronomy
答案 0 :(得分:0)
好的,我明白了。 整个方法是正确的。问题是我甚至没想到的地方。我的TagsEnum字段用俄语写成,因为我认为它不应该有任何区别,一旦搜索词和参数相互匹配,结果它确实有所作为,一旦我用英语更改了搜索词,它立即起作用。感谢大家的时间和关注。