验证MVC中的下拉列表

时间:2014-06-05 13:06:21

标签: asp.net-mvc

模型

[Required]
 [Display(Name = "Source")]
  [Range(typeof(string), "0","10", ErrorMessage = "Please select Source")]
   public string Source { get; set; }

查看

 @Html.DropDownListFor(model => model.Source, new SelectList(new[]
                                          {
                                           new {ID="select",Name="Select"},
                                            new{ID="Facebook",Name="Facebook"},  
                                              new{ID="Twitter",Name="Twitter"}, 
                                                new{ID="LinkedIn",Name="LinkedIn"}, 
                                                                                  },
                      "ID", "Name", 1), new { style = "height:24px;" })  

如何使用数据注释验证这一点?我需要将ID作为Facebook这样的文本存储在db。

3 个答案:

答案 0 :(得分:0)

您可以使用IValidatableObject接口并实现您自己的模型类验证。

How do I use IValidatableObject?

答案 1 :(得分:0)

@Html.DropDownListFor(model => model.Source, new SelectList(new[]
                                          {

                                            new{ID="Facebook",Name="Facebook"},  
                                              new{ID="Twitter",Name="Twitter"}, 
                                                new{ID="LinkedIn",Name="LinkedIn"}, 
                                                                                  },
                      "ID", "Name", 1),"Select", new { style = "height:24px;" })  

我这样给了。它的工作正常。

答案 2 :(得分:0)

您已使用数据注释修饰了模型。现在,您只需要放置不显眼的jquery脚本,以便在客户端启用验证。服务器端验证应该按原样运行。我不理解选择列表中Range属性的基本原理。