C#MVC5インターネットアプリケーションビューで、ユーザーがView Model
リストから入力されたリストアイテムを選択するためのドロップダウンリストを表示するにはどうすればよいですか?
ViewModel
コードは次のとおりです。
public class MapLocationItemViewModel
{
[Editable(false)]
public int mapLocationForeignKeyId { get; set; }
public List<string> mapLocationItemTypes { get; set; }
public MapLocationItem mapLocationItem { get; set; }
}
これが私が現在View
に持っているコードです:
<div class="form-group">
@Html.LabelFor(model => model.mapLocationItem.mapLocationItemType, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.mapLocationItemTypes)
</div>
</div>
mapLocationItemTypes
の各アイテムは、現在class="text-box single-line valid"
として表示されています。
list<string>
またはarray
から入力されたリストを表示するMVCビュータグはありますか?
私は次のコードを試しました:
@Html.DropDownListFor(model => model.mapLocationItemTypes)
ただし、コンパイルエラーが発生し、オーバーロードされたメソッドの値がわかりません。
ユーザーがリストからリストアイテムを選択できるように、ビューにリストを表示する最良の方法はどのようになっていますか?
前もって感謝します
モデル:
_ public List<SelectListItem> mapLocationItemTypes { get; set; }
public int mapLocationItemVal { get; set; }
_
見る:
_@Html.DropDownListFor(m => m.mapLocationItemVal , new SelectList(Model.mapLocationItemTypes , "Value", "Text"), " -----Select List----- ")
_
上記の例では、DropDownListFor()
の3番目のパラメーター、つまり_" -----Select List----- "
_が、値が_''
_に等しいドロップダウンの最初に選択されたアイテムになります。
POST mapLocationItemVal
の間にコントローラーで、ドロップダウン値が選択されます。
上に示したコードは、MVCでドロップダウンリストをバインドするための最良かつ最も簡単な方法です。
コントローラでメソッドを作成します
Public ActionResult Index()
{
SampleDBContext db = new SampleDBContext();
ViewBag.table_name = new SelectList(db.table_name, "DataValueField", "DataTextField");
return View();
}
コントローラのビュー
@Html.DropDownList("table_name", "select a item")
これを試して;
データを投稿するときに、選択した値に基づいてmapLocationItem.mapLocationItemType
を入力する必要があると思います。
@Html.DropDownListFor(model => model.mapLocationItem.mapLocationItemType, new SelectList(Model.mapLocationItemTypes))
CSSクラスを追加したい場合は、以下のように行うことができます。
@Html.DropDownListFor(model => model.mapLocationItem.mapLocationItemType, new SelectList(Model.mapLocationItemTypes), new { @class = "your-class" })