検索用の単純なテキストボックスを持つ基本的なMVCインデックスビューがあり、正常に動作します。フィールドの1つから別の値を引き出すために、ドロップダウンリストフィルタも追加したかったのです。私はそれがこのような記事を使用して作業しました:ASP.NET MVCフィルタの値にドロップダウンにDistinct Valuesを選択します。
MVC - DropDown containing all distinct values for one field in database?
モデル内の別個の値を通じてあなただけのループ。問題は、一度値を選択してフォームを送信するときれいにフィルタリングされますが、ドロップダウンリストには1つの値(選択されている1つの値)しか含まれていないため、ビューがフィルタリングされるためです。
元の値を保持する簡単な方法がありますか、またはドロップダウンリストを作成するためにフィルタなしでモデルを再検索するようにビューにRazorを使用する簡単な方法はありますか?ここ
はビュー
@model IEnumerable<KPI_OnlineBilling_MVC.Models.OBProjectRequisition>
@Html.DropDownList("region", new SelectList(Model.Select(i => i.MMRegion).Distinct().ToList()), new { onchange = "this.form.submit();" })
の一部だと、コントローラは、あなたの初期に行ったように全く同じように、基本的
public ActionResult Index(string searchString, string Regions)
{
var requisitions = from s in db.OBProjectRequisitions select s;
if (!String.IsNullOrEmpty(Regions))
{
requisitions = requisitions.Where(s => s.MMRegion.Contains(Regions));
}
return View(requisitions.ToList());
}
コードの一部を投稿できますか?コントローラの部分とビューのように? – SamyCode
コントローラーメソッドで 'SelectList'を生成する必要があります。これは、必要な値を含むデータベーステーブルから値を生成することによって行います。 –