我有一个包含简单属性的类。
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)
在我点击提交按钮后,我收到了验证错误消息,但没有得到我在模型中手动定义的消息。我收到此错误消息“字段SelectedProjectCategoryId必须是一个数字。”而是我定义的那个“请选择一个项目类型”
有人可以建议我需要修理什么?
感谢。
答案 0 :(得分:0)
您的验证失败的是Integer数据类型而不是必填字段。
尝试如下:
[Required(ErrorMessage = "Please select a project type.")]
[RegularExpression("\\d+", ErrorMessage = "Please select a project type")]
public int SelectedProjectCategoryId { get; set; }