のドロップダウンのためのより多くのチュートリアルを見ることができるビュー
@Html.DropDownList("ItemDropdown1", Model.ListOfItems, "Select Item...")
にコントローラに表示
に
public ActionResult Index(string val, bool? inStock)
{
var viewModel = new ItemSearchViewModel();
viewModel.ListOfItems = new SelectList(_service.GetListOfItem(), "ItemID", "ItemName"); //field to use ItemID as value ItemName as text
return View(viewModel);
}
をHTMLヘルパーを追加することができます@fedriによる回答のビット.....
あなたは非常に多くのドロップダウンを持っているので、私はあなたがドロップダウンを整理するためにviewmodelクラスを使うことを強く勧めます。 (私はあなたがなぜそれほど多くのドロップダウンを持っているのかはわかりませんが、過剰な量のように見えますが、デザインには理由があると思います)。第1に、ビューモデルは単にclass
である。
public class IndexViewModel
{
public List<SelectListItem> Dropdown1 { get; set; }
public string Dropdown1SelectedItem { get; set; }
}
私はビューにそのインスタンスを渡すことによって、こののviewmodelを使用しています。
public class HomeController : Controller
{
public ActionResult Index()
{
var viewModel = new IndexViewModel();
viewModel.Dropdown1 = new List<SelectListItem>();
viewModel.Dropdown1.Add(new SelectListItem() { Text = "Item 1", Value = "23" });
return View(viewModel);
}
}
@model WebApplication3.Controllers.IndexViewModel
@using (Html.BeginForm())
{
@Html.DropDownList(nameof(Model.Dropdown1SelectedItem), Model.Dropdown1, "Select item...")
<input type="submit" value="Save" />
}
Iデータをポストバック場合、Dropdown1
の選択された値をDropdown1SelectedItem
に格納されています。
[HttpPost]
public ActionResult Index(IndexViewModel viewModel)
{
//viewModel.Dropdown1SelectedItem will contain the Value property of the item you selected.
return View();
}
これは、起動して実行するのに十分簡単です。あなたが迷子になってしまった場合に備えて、あなたのビューモデルを整理して、非常に多くのドロップダウンを用意しています。しかし、ドロップダウンプロパティに十分な名前をつけると、それほど悪くはないはずです。
EDIT:
あなたがポストバックからというし、バックAJAX/jQueryの経由ドロップダウンデータを渡す必要がある場合は、私はデータが動作する渡すJSON構造を使用していないかを確認することはできません。その場合、設計を見て、1回のヒットでデータをポストバックするには100回以上のドロップダウンが合理的であるかどうかを検討します。
MVCはUIをコードの背後から切り離すので、コードはありません。必要に応じて、ビューにドロップダウンをいくつでもドロップすることができます。コントローラとビジネスサービスを使用して、バインドする各ドロップダウンが必要な "SelectListItems"リストのそれぞれのモデルのプロパティを設定してください。 – Wheels73
Webフォームでは、MVCでより多くのデータを渡していましたが、これはもっとシンプルでクリーンです。http://stackoverflow.com/questions/14654873/asp-net-mvc-4-viewmodel-with-dropdownlist-dataを参照してください。 – Anil