2013-10-24 39 views
0

我有一个具有简单属性的类。如何更改ErrorMessage MVC DropDownListFor

public class Projects 
    { 

     private static readonly WebWideMediaDataContext _ctx = new WebWideMediaDataContext(); 


     public string Title { get; set; } 


     public string Description { get; set; } 


     private readonly List<ProjectCategoryModel> _categories = _ctx.ProjectCategories.GetAll(); 


     [Required(ErrorMessage = "Please select a project type.")] 
     public int SelectedProjectCategoryId { get; set; } 

     public IEnumerable<SelectListItem> CategoryList 
     { 
      get 
      { 
       var categoryList = _categories.Select(s => new SelectListItem 
                   { 
                    Value = s.CategoryId.ToString(), 
                    Text = s.CategoryName 
                   }); 

       return DefaultListItem.Concat(categoryList); 
      } 
     } 



     public IEnumerable<SelectListItem> DefaultListItem 
     { 
      get 
      { 
       return Enumerable.Repeat(new SelectListItem 
       { 
        Value = "select", 
        Text = "Select an Option" 
       }, count: 1); 
      } 
     } 


    } 

在我看来,我有一个DropDownListFor

@Html.DropDownListFor(model => model.SelectedProjectCategoryId, Model.CategoryList) 

我点击提交按钮后,我得到了验证错误消息,但不是我已经在模型manuaully定义的。我得到了这个错误消息“字段SelectedProjectCategoryId必须是一个数字。”而不是我定义的“请选择一个项目类型”

有人可以请建议我需要什么来解决?

谢谢。

回答

0

您的验证失败整数数据类型,而不是必填字段。

尝试如下:

[Required(ErrorMessage = "Please select a project type.")] 
[RegularExpression("\\d+", ErrorMessage = "Please select a project type")] 
public int SelectedProjectCategoryId { get; set; }