mvc5模型绑定无法使用dropdownlistfor

时间:2015-07-15 20:03:41

标签: asp.net-mvc

我有一个视图模型类:

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时,选择是在formcollection中。如果我将int selectedTankFactor更改为字符串,它将正确绑定但这不是我想要的。这与我如何初始化SelectListItem有关吗?我如何让它绑定int? SelectListItem只接受字符串作为值。另外,如何强制用户在提交之前选择“坦克类型”以外的选择?

1 个答案:

答案 0 :(得分:0)

selectedTankFactor设为小数,如果您不希望用户在未选择储罐类型的情况下提交表单,请将所需的验证添加到selectedTankFactor属性。您还必须包含client side validations的jquery验证库。

[Required]
public decimal selectedTankFactor { get;set; }