Dbの私のテーブルにはフィールドがあります:Id
、Organisation
、Info
。
私はそのようなdropdowmリストを作りたいです:
<select>
<option value='Id there'>'Organisation there'</option>...
私はViewBagを使用してそれをやろうとしています:
ViewBag.Organisations = db.Organisations.ToList(); // get all fields from table using dbContext
とビュー:
@Html.DropDownList('I don`t know what i shoud write here, please help')
ドロップダウンリストを作成するにはどうすればよいですか?
コントローラーアクションで SelectList
を作成するには、 constructors のいずれかを使用し、ビューでDropDownListメソッドをパラメーターとして渡す必要があります。
コントローラでこれを行います:
ViewBag.Organisations = new SelectList(db.Organisations.ToList(),"Id","Organisation");
SelectList
では、最後の2つのパラメーターで指定しているvalue
タグで、text
として使用するプロパティとoption
として使用するプロパティを指定する必要があります。
そして、Viewでは、次のように使用する必要があります。
@Html.DropDownList("Organization",ViewBag.Organisations as SelectList)
ここで、最初のパラメーターはselect
要素の名前として使用され、2番目のパラメーターはoption
のselect
要素に入力するために使用されます
以下は、Html.DropDownList
で使用できるオーバーロードのリストです。
OrganisationId
プロパティを使用してページのViewModelを定義することをお勧めします。したがって、この値は組織のドロップダウンリストのエントリを選択するときに入力されます。
@model BCO.Models.SelectOrganisationViewModel
@{
ViewBag.Title = "OrganisationInfo";
}
<div>
@Html.DropDownListFor(o => o.OrganisationId,
new SelectList(ViewBag.Organisations, "Id", "Name"))
</div>
SelectList 自体は
パラメータとして。
次のようにviewbagからselectlistを使用できます
@Html.DropDownListFor(m => m.Name, ViewBag.GetData as SelectList, new { @class = "form-control" })
ここでViewBag.GetDataはコントローラーから入力され、コントローラーコードは次のようになります。
ViewBag.GetData = new SelectList(repository.GetOrganisation(), "ID", "OraganizationName");