0

このDropDownListFor()に問題があります

私はテストコントローラーを持っています:

model.COUNTRYNAME = "Swizerland";
        ViewBag.Selecter = new SelectList(new[]  
        { 
            new SelectListItem { Text = "USA", Value = "USA" }, 
            new SelectListItem { Text = "Swizerland", Value = "Swizerland", Selected =true}, 
             new SelectListItem { Text = "Russia", Value = "Russia" }, 

        }, "Text", "Value", model.COUNTRYNAME);

ビューで

@Html.DropDownListFor(x => Model.COUNTRYNAME , (SelectList)ViewBag.Selecter)

DropDownListForには選択値がなく、常に最初の値が選択されます。

なにが問題ですか?

DropDownListを使用する場合

@Html.DropDownList("COUNTRYNAME" , (SelectList)ViewBag.Selecter)

また、動作しません。

しかし、私が使用する場合

@Html.DropDownListFor("AAAAAAA" , (SelectList)ViewBag.Selecter)

正常に動作し、2番目の値を選択します。何が起こるのですか?理解できない。

ありがとう

4

1 に答える 1

1

このようにしてみてください:

model.COUNTRYNAME = "Swizeland";
ViewBag.Selecter = new[]  
{ 
    new SelectListItem { Text = "USA", Value = "USA" }, 
    new SelectListItem { Text = "Swizeland", Value = "Swizeland" },
    new SelectListItem { Text = "Russia", Value = "Russia" }, 
};
return View(model);

とビューで:

@Html.DropDownListFor(
    x => x.COUNTRYNAME, 
    (IEnumerable<SelectListItem>)ViewBag.Selecter
)

しかし、より良い方法は、ビューモデルを使用することです。

model.SelectedCountry = "Swizeland";
model.Countries = new[]  
{ 
    new SelectListItem { Text = "USA", Value = "USA" }, 
    new SelectListItem { Text = "Swizeland", Value = "Swizeland" },
    new SelectListItem { Text = "Russia", Value = "Russia" }, 
};
return View(model);

とビューで:

@Html.DropDownListFor(x => x.SelectedCountry, Model.Countries)
于 2012-05-01T12:58:10.040 に答える