2015-07-15 2 views
0

У меня есть класс вид модели:mvc5 модель связывания не работает с dropdownlistfor

public class TankDurationViewModel 
    {   
     public int selectedTankFactor { get;set; } 
     public List<SelectListItem> tank_factor_list { get; set; } 

     public double? myAnswer { get; set; } 

     public TankDurationViewModel() 
     { 
      this.tank_factor_list = new List<SelectListItem>(); 
      this.tank_factor_list.Add(new SelectListItem { Text = "E", Value = "0.28" }); 
      this.tank_factor_list.Add(new SelectListItem { Text = "H", Value = "3.14" }); 
     } 
    } 

Вид:

@Html.DropDownListFor(x=>x.selectedTankFactor,Model.tank_factor_list,"Tank Type") 

Когда я представляю, мой selectedTankFactor не будет связываться. Я всегда буду равен 0. Когда я смотрю на formcollection, выбор находится в форме. Если я изменил int selectedTankFactor на строку, он будет правильно связываться, но это не то, что я хочу. Это связано с тем, как я инициализирую SelectListItem? Как заставить его связывать int? SelectListItem принимает строку только для значения. Также как заставить пользователя выбирать выбор, отличный от «Тип резервуара» перед отправкой?

+0

показать нам метод контроллера, где эта модель передана – Disappointed

ответ

0

Сделайте selectedTankFactor до десятичной и если вы не хотите, чтобы пользователь отправлял форму без выбора типа танка, добавьте требуемую проверку в свойство selectedTankFactor. Вы также должны включить jquery validate library для client side validations.

[Required] 
public decimal selectedTankFactor { get;set; } 
Смежные вопросы