web-dev-qa-db-ja.com

ViewBagを使用したAsp.net mvcドロップダウンリスト

Dbの私のテーブルにはフィールドがあります:IdOrganisationInfo

私はそのような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')

ドロップダウンリストを作成するにはどうすればよいですか?

8
I.Bond

コントローラーアクションで 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番目のパラメーターはoptionselect要素に入力するために使用されます

以下は、Html.DropDownListで使用できるオーバーロードのリストです。

https://msdn.Microsoft.com/en-us/library/system.web.webpages.html.htmlhelper.dropdownlist%28v=vs.111%29.aspx?f=255&MSPPError=-2147217396 =

15
Ehsan Sajjad

OrganisationIdプロパティを使用してページのViewModelを定義することをお勧めします。したがって、この値は組織のドロップダウンリストのエントリを選択するときに入力されます。

@model BCO.Models.SelectOrganisationViewModel

@{
    ViewBag.Title = "OrganisationInfo";
}

<div>
    @Html.DropDownListFor(o => o.OrganisationId,
        new SelectList(ViewBag.Organisations, "Id", "Name"))
</div>

SelectList 自体は

  • dropDownListに入力するリスト
  • 値( "Id")
  • テキスト( "名前")

パラメータとして。

4
Valentin Sky

次のように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");
2
SumitS.