私は asp.net mvc の初心者であり、自分が行っていることが正しいかどうかを知りたいです。
人を検索するためのビューを作成したい。これが私がこれまでに持っているものです:
ビジネスモデルクラス:
public class Person { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public Address Address { get; set; } public DateTime DOB { get; set; } public List<Telephone> Telephones { get; set; } }
ViewModel クラス:
public class SearchPersonViewModel { public int Id { get; set; } public string FullName { get; set; } public string LicencePlate { get; set; } public string CarMake { get; set; } public string CarModel { get; set; } }
部分的なビュー:
@model IEnumerable<MvcApplication2.Models.SearchPersonViewModel> @foreach (var item in Model) { @Html.DisplayFor(m => item.Id) @Html.DisplayFor(m => item.FullName) }
部分ビューの呼び出し元のビュー:
@Html.Action("Search", "Person");
*PersonController のコントローラー メソッド:
[ChildActionOnly]
public ActionResult Search()
{
List<SearchPersonViewModel> model = new List<SearchPersonViewModel>();
model.Add(new SearchPersonViewModel() { FullName = "test", Id = 3 });
return PartialView("_SearchPerson", model);
}
問題は、メイン ビューが読み込まれるたびに Search メソッドが呼び出されることです。私が望むのは、メインビューに検索テキストボックスを追加して、部分ビューでレンダリングされたコレクションをフィルタリングすることです。どうすればそれができますか?