0

MVC 4RazorViewのシンプルなドロップダウンメニューを作成しようとしています。次を返すメソッドを含むサービスクラスがあります

public List<SelectListItem> YesNoList()
{

    List<SelectListItem> items = new List<SelectListItem>();

    items.Add(new SelectListItem { Text = "Select", Value = "" });
    items.Add(new SelectListItem { Text = "Yes", Value = "True" });
    items.Add(new SelectListItem { Text = "No", Value = "False" });

    return items;
}

コントローラでこのサービスメソッドを呼び出します

[AllowAnonymous]
public ActionResult Register()
{
    RegisterModel model = new RegisterModel();

    model.DisabilityList = new SelectList(_listService.YesNoList(), "Value", "Text", "");

    return View(model);
}

次に、それを私のRazorViewに戻します

<div class="editor-label">
    @Html.LabelFor(model => model.Disability, "Do you have a disability?")
</div>
<div class="editor-field">
    @Html.DropDownListFor(model => model.Disability, Model.DisabilityList)
</div>

ドロップダウンメニューで「選択」という名前の項目を選択オプションにしたいのですが、デフォルトでは常に「いいえ」オプションが選択されます。どうしてこれなの?

SelectListItemをこれに変更してみました

items.Add(new SelectListItem { Text = "Select", Value = "", Selected = True });

ただし、選択したオプションとして「いいえ」が選択されます。

私が知っている簡単なコーディングですが、機能させることができません。

助けてください。

ありがとう。

4

2 に答える 2

2

あなたのモデルはDisabilitybool プロパティnullableですか?

そうでない場合、のデフォルト値はDisability次のfalseとおりです。

@Html.DropDownListFor(model => model.Disability, Model.DisabilityList)

falseは、 に関連付けられた値を選択しますNo

于 2013-01-23T11:23:18.140 に答える
0

これ

new SelectList(_listService.YesNoList(), "Value", "Text", "");

このようなものでなければなりません

new SelectList(_listService.YesNoList(), "Value", "Text", _listService.YesNoList().First());
于 2013-01-23T11:22:12.687 に答える