DropDown、TextBox、およびButtonがあります。DropDownにはColumnNames(Name、Cpr)が含まれていて、フィルタされたデータを表示するにはdropDownから値を選択し、文字列を入力してButtonをクリックします。これを行うために、私は次のコードを書いたが、DropDown Selected Valueを得ることができなかった。 次は私のコントローラのビューで ドロップダウンリストを使用して選択した値をデータにフィルタリングする
public ActionResult Index(string searchType,FormCollection frm)
{
List<SelectListItem> obj = new List<SelectListItem>();
obj.Add(new SelectListItem { Text = "Agent Name", Value = "Name", Selected = true });
obj.Add(new SelectListItem {Text = "CPR Number", Value = "Cpr"});
ViewBag.cmb = obj;
var agents = from s in db.Agents
select s;
if (searchType != null)
{
ViewBag.searchString = searchType;
string cmbColumnSelection = frm["cmb"];
switch (cmbColumnSelection)
{
case "Name": // Table=Agent,Column=Name
agents = agents.Where(s => s.Name.ToString().Contains(searchType));
break;
default:
agents = agents.Where(s => s.Cpr.ToString().Contains(searchType));
break;
}
}
return View(agents.ToList());
} `
です:
@using (Html.BeginForm("Index", "Agent", FormMethod.Get))
{
<p>
@Html.TextBox("searchType", ViewBag.searchString as string)
Select Filter : @Html.DropDownList("cmb")
<input type="submit" value="Submit" class="btn btn-primary" />
</p>
}
だけアクションのパラメータを宣言し、フォームのコレクションを使用しないでください: 'インデックス(文字列て、searchType、文字列のCMB)' – Andrei
そして、どのようにすることができますがここでDropDownListを選択して値を取得しますか? 'string cmbColumnSelection = frm [" cmb "];' – tahirraza
入力にあります! 'String cmb'には、必要な値が含まれていなければなりません – Andrei