2013-10-24 56 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; }