最初にエンティティ フレームワーク モデルで ASP.NET MVC 4 を使用しています。
私の「Masterpage.cshtml」では、テキストボックスとボタンを含む部分ビューが必要です。
検索はアイテムのタイトルを探しています。テキストにアイテムのタイトルが含まれている場合は、それらのアイテムを表示する必要があります。
テキストが送信される@renderbody()
と、アイテムを含むビューが表示されます。
私の質問は、どうすればこれを良い方法で行うことができますか? 良い簡単なアプローチは何ですか?
これまでのところ、私はこれを行ってきました:
検索機能を実行するメソッドをリポジトリに作成しました。
public List<News> Search(string query)
{
var queryz = db.News.Where(x => x.Title.Contains(query));
return queryz.ToList();
}
今、私の Searchcontroller に関して言えば、これを行う方法を失いました。1つのアクション結果は、文字列クエリパラメーターを持つ部分ビューである必要があり、もう1つはアイテムを表示するビューを含む必要があるためですか?
私が今行ったことは、プロセス全体を同じアクション結果にすることです:
Repository rep = new Repository();
[HttpPost]
public ActionResult Search(string query)
{
var searchlist = rep.Search(query);
var model = new ItemViewModel()
{
NewsList = new List<NewsViewModel>()
};
foreach (var NewsItems in searchlist)
{
FillProductToModel(model, NewsItems);
}
return View(model);
}
private void FillProductToModel(ItemViewModel model, News news)
{
var productViewModel = new NewsViewModel
{
Description = news.Description,
NewsId = news.Id,
Title = news.Title,
link = news.Link,
Imageurl = news.Image,
PubDate = news.Date,
};
model.NewsList.Add(productViewModel);
}
どんな種類の助けも大歓迎です!