Для достижения желаемого эффекта вы могли бы иметь 2 свойства на модели вида: один, который будет удерживать выбранное значение и один который будет содержать список возможных значений:
public class MyViewModel
{
public string AgeGroup { get; set; }
public IEnumerable<SelectListItem> AgeGroups { get; set; }
}
, что вы бы заселить в своем действии контроллера:
public ActionResult Index()
{
var model = new MyViewModel();
// Obviously the list of possible values might be
// coming from a database or something else
model.AgeGroups = new[]
{
new SelectListItem { Value = "1", Text = "group 1" },
new SelectListItem { Value = "2", Text = "group 2" },
new SelectListItem { Value = "3", Text = "group 3" },
};
// an element with Value="2" from the previous collection will be selected
model.AgeGroup = "2";
return View(model);
}
и, наконец, на ваш взгляд:
@Html.DropDownListFor(
x => x.AgeGroup,
Model.AgeGroups,
"Please select",
new { @class = "form-control", id = "ddl_InvAgeGroup", name = "AgeGroup" }
)
Формат '@ Html.DropDownList (м => m.yourProperty, Model.YourSelectList, "Пожалуйста, выберите", новый {...}' - вам нужно свойство для привязки и свойство для 'SelectList', и если значение свойства соответствует значению одной из опций, оно будет выбрано. –
Я изменил свой код, но также не отображает выбранное значение, а вместо этого в drop вниз показывает 2 раза выпадающие значения – ArunRaju
Кажется, вы используете то же свойство для коллекции и выбранного значения: 'AgeGroup'. Это не значит, что этот помощник должен использоваться. Вам нужно 2 свойства в вашей модели просмотра: один скалярный тип, который будет удерживать выбранное значение и одно свойство IEnumerable, которое будет содержать список возможных значений, отображаемых в раскрывающемся списке. –