У меня есть простой фрагмент кода, который пытается заполнить список из трех стран и по умолчанию выбрать 2-й элемент. По какой-то причине @ Html.DropDownList не инициализирует второй элемент на экране. Может кто-то указать, что не так с этим кодом?@ Html.DropDownList не может инициализировать значение
public class DemoController : Controller
{
[HttpGet]
public ActionResult Test()
{
List<SelectListItem> ddlCountries = new List<SelectListItem>();
SelectListItem item1 = new SelectListItem { Selected = false, Text = "USA", Value = "1" };
SelectListItem item2 = new SelectListItem { Selected = true, Text = "Ireland", Value = "2" };
SelectListItem item3 = new SelectListItem { Selected = false, Text = "UK", Value = "3" };
ddlCountries.Add(item1);
ddlCountries.Add(item2);
ddlCountries.Add(item3);
ViewBag.ddlCountries = ddlCountries;
return View();
}
[HttpPost]
public string Test(string ddlCountries)
{
return "The selected Value was " + ddlCountries;
}
}
Ниже является выход на экран ..
Окно quickwatch показывает, что свойство "Selected" правильно присвоено значение "2", тем не менее экран не отражает это.
Код для зрения является следующая
@{
ViewBag.Title = "Test";
}
<h2>Test</h2>
@using (Html.BeginForm("Test", "Demo", FormMethod.Post))
{
@Html.DropDownList("ddlCountries", (IEnumerable<SelectListItem>) ViewBag.ddlCountries)
<br />
<input type="submit" value="submit" />
}
Вы можете попытаться использовать объект 'SelectList' вместо' IEnumerable 'obje кт. –
@codingstill, и как это иначе? Кстати, 'SelectList' реализует' IEnumerable '. –