2017-02-22 43 views
-2

Выбранный просадка значение не получает отображаетсявыбранное значение для @ Html.DropDownListFor не работает

@Html.DropDownListFor(x => x.AgeGroup, ViewBag.AgeGroup as SelectList, "Please select", new {@class = "form-control", id = "ddl_InvAgeGroup", name = "AgeGroup"}) 
+0

Формат '@ Html.DropDownList (м => m.yourProperty, Model.YourSelectList, "Пожалуйста, выберите", новый {...}' - вам нужно свойство для привязки и свойство для 'SelectList', и если значение свойства соответствует значению одной из опций, оно будет выбрано. –

+0

Я изменил свой код, но также не отображает выбранное значение, а вместо этого в drop вниз показывает 2 раза выпадающие значения – ArunRaju

+0

Кажется, вы используете то же свойство для коллекции и выбранного значения: 'AgeGroup'. Это не значит, что этот помощник должен использоваться. Вам нужно 2 свойства в вашей модели просмотра: один скалярный тип, который будет удерживать выбранное значение и одно свойство IEnumerable, которое будет содержать список возможных значений, отображаемых в раскрывающемся списке. –

ответ

0

Для достижения желаемого эффекта вы могли бы иметь 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" } 
) 
+0

, но мне нужны динамические данные – ArunRaju

+0

Конечно, просто проецируйте свои динамические данные в свойство коллекции AgeGroups 'вашей модели представления, так же, как вы заселили свою« ViewBag.AgeGroup ». –