0

我有一个包含简单属性的类。

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 字段必须是数字。” 而是我定义的“请选择一个项目类型”

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

谢谢。

4

1 回答 1

0

您对 Integer 数据类型的验证失败,而不是对 Required field 的验证。

尝试如下:

[Required(ErrorMessage = "Please select a project type.")]
[RegularExpression("\\d+", ErrorMessage = "Please select a project type")]
public int SelectedProjectCategoryId { get; set; }
于 2013-10-25T10:54:36.223 回答