web-dev-qa-db-ja.com

MVC5ビューのドロップダウンリスト

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)

ただし、コンパイルエラーが発生し、オーバーロードされたメソッドの値がわかりません。

ユーザーがリストからリストアイテムを選択できるように、ビューにリストを表示する最良の方法はどのようになっていますか?

前もって感謝します

3
user3736648

モデル:

_ 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でドロップダウンリストをバインドするための最良かつ最も簡単な方法です。

19

コントローラでメソッドを作成します

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")
2
Regan

これを試して;

データを投稿するときに、選択した値に基づいて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" })
2
Saranga