0
私のプロジェクトでキーワードによる検索アクションを作成しようとしています。ここ は、ビュー内のコードである:ここでフィルタ 'キーワードで検索'が動作しません
<form method="get">
<input type="radio" name="news" value="newest"> Newest First
<input type="radio" name="news" value="keyword"> Keyword Search
<input type="search" name="keyword" id="search" />
<button type="submit" value="Search"><span class="glyphicon glyphicon-search"></span></button>
モデルである:ここでは
public class News
{
public int Id { get; set; }
public string Date { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Image { get; set; }
public string Link { get; set; }
}
は、それが働いていないコントローラです。 Newest Firstは適切なデータを提供していますが、Keywordは最初にリストのすべての単一のオブジェクトを提供します。
[HttpGet]
public ActionResult News(String news = null, String text = null)
{
if (news == "newest")
{
var model =
from n in _news
orderby n.Date
select n;
return View(model);
}
else {
var model =
from n in _news
.Where(n=> text == null || n.Name.Contains(text))
select n;
return View(model);
}
}
そして、ここでニュースリストの要素のほんの一部です:
static List<News> _news = new List<News>
{
new News {
Id = 1,
Date = "01/01/2017",
Name = "blabla",
Description = "blabla",
Image = "blabla.jpg",
Link = "dassda"
},
new News {
Id = 2,
Date = "vlava",
Name = "dada",
Description = "dsadasa",
Image = "dasdsa.jpg",
Link = "sdaa"
};
テキストがnullの場合、すべてのレコードが返されます。入力名がパラメータと一致しません。 – Nkosi
''(キーワード "ではない - メソッドのパラメータの名前と一致する必要があります) –
私は知っていますが、 textがnullでなくても、それでもすべてのレコードが返されます。 –