2017-09-21 79 views
0

データベース内のテーブルには、フィールド:IdOrganisationInfoがあります。ViewBagを使用したAsp.net mvcドロップダウンリスト

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

どのように私ドロップダウンリストを作成できますか?

答えて

2

constructorsのいずれかを使用してコントローラのアクションでSelectListを作成し、ビューにDropDownListメソッドをパラメータとして渡すだけで済みます。我々は最後の二つのパラメータに指定されているoptionタグにtextとして使用するvalueとどのように使用するプロパティを指定する必要がありますSelectList

ViewBag.Organisations = new SelectList(db.Organisations.ToList(),"Id","Organisation"); 

:コントローラで

は、これを行います。

し、表示にあなたがこのようにそれを使用する必要があります:

@Html.DropDownList("Organization",ViewBag.Organisations as SelectList) 

ここで最初のパラメータは、select要素の名前として使用される2つ目は、select

optionの要素を移入するために使用されます

Html.DropDownListために利用可能なオーバーロードの一覧を以下に示します。

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

+0

ありがとうございます。私にエラーがある理由を教えてください。 - 'Organization'というキーを持つ 'IEnumerable 'タイプのViewDataアイテムはありませんか? –

+0

@ Html.DropDownList( "Organizations"、........)組織を組織に変更するには、ViewBagの名前(この場合は組織)を複数のsと一致させる必要があります。 – ktconrad90

+0

@ I.Bondあなたはまだその問題に直面していますか?あなたがそのようにすれば、私はあなたがそのエラーを見るべきだとは思わないと示したのです。 –

0

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

@model BCO.Models.SelectOrganisationViewModel 

@{ 
    ViewBag.Title = "OrganisationInfo"; 
} 

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

SelectList自体は

  • と値( "ID")をDropDownListコントロールを埋めるために

    • リストを見込ん
    • テキスト( "名前")

    パラメータとして。

  • +0

    これは質問に答えてOPを助けるかもしれませんが、コードだけでなく少しの説明も提供してください。 – Abbas

    関連する問題