ASP.NET MVC3 アプリケーションで作業していますが、特定のエディター ビューでプロパティを操作する DropDownListFor を取得できません。
私のモデルは でPerson
、人物には「人物タイプ」を指定するプロパティがあります。PersonType
名前/説明と ID を含むクラスです。PersonType
という静的/共有クラスを介して、アプリケーション内で使用可能な にアクセスできますApplicationSettings
。
私のテンプレートの編集ビューで、デバッグ用Person
に作成しました:SelectList
@ModelType MyNamespace.Person
@Code
Dim pTypesSelectList As New SelectList(MyNamespace.ApplicationSettings.PersonTypes, "ID", "Name", Model.PersonType.ID)
End Code
次に、これを my のプロパティにバインドされたSelectList
へのパラメーターとして提供します。DropDownListFor
PersonType
Person
また、デバッグ目的Selected
で各アイテムのプロパティを出力しています。SelectList
<div style="text-align: center; margin: 5px 0 0 0;">
<div>
@Html.LabelFor(Function(model) model.PersonType)
</div>
<div>
@Html.DropDownListFor(Function(model) model.PersonType, pTypesSelectList)
@Html.ValidationMessageFor(Function(model) model.PersonType)
<br />
<br />
<!-- The following is debugging code that shows the actual value-->
@Model.Type.Name
<br />
@Model.Type.ID
<br />
<br />
<!--This section is to show that the select list has properly selected the value-->
@For Each pitem In pTypesSelectList
@<div>
@pitem.Text selected: @pitem.Selected
</div>
Next
</div>
</div>
Person
ビューは、PersonType
プロパティが「Person Type # 2」である にバインドされており、これが選択されることを期待しています。ただし、このコードの HTML 出力は次のようになります。
<div style="text-align: center; margin: 5px 0 0 0;">
<div>
<label for="PersonType">PersonType</label>
</div>
<div>
<select id="PersonType" name="PersonType">
<option value="7e750688-7e00-eeee-0000-007e7506887e">Default Person Type</option>
<option value="87e5f686-990e-5151-0151-65fa7506887e">Person Type # 1</option>
<option value="a7b91cb6-2048-4b5b-8b60-a1456ba4134a">Person Type # 2</option>
<option value="8a147405-8725-4b53-b4b8-3541c2391ca9">Person Type # 3</option>
</select>
<span class="field-validation-valid" data-valmsg-for="PersonType" data-valmsg-replace="true"></span>
<br />
<br />
<!-- The following is debugging code that shows the actual value-->
Person Type # 2
<br />
a7b91cb6-2048-4b5b-8b60-a1456ba4134a
<br />
<br />
<!--This section is to show that the select list has properly selected the value-->
<div>
Default Person Type selected: False
</div>
<div>
Person Type # 1 selected: False
</div>
<div>
Person Type # 2 selected: True
</div>
<div>
Person Type # 3 selected: False
</div>
</div>
</div>
ご覧のとおり、SelectList 内の項目の Selected プロパティが出力されており、3 番目の項目が「選択済み」であることを示しています。しかし、私を夢中にさせているのは、これに対応するオプションが選択されていないことです。