我正在开发一个 ASP.NET MVC2 应用程序,其中有一个 User
类,其属性名为 SecurityQuestionID
,如下所示:
public class User
{
[RangeAttribute(1, 5, ErrorMessage = "Security Question is required")]
[DisplayName("Security Question")]
public virtual int SecurityQuestionID { get; set; }
}
SecurityQuestionID
字段从 View 中的下拉列表中填充,如下所示:
<%: Html.LabelFor(model => model.SecurityQuestionID)%>
<%: Html.DropDownListFor(model => model.SecurityQuestionID, ViewData["securityQuestions"] as SelectList,"Choose a Question",null) %>
<%: Html.ValidationMessageFor(model => model.SecurityQuestionID)%>
Controller 使用 View 数据向 View 发送安全问题,如下所示:
ViewData["securityQuestions"] = new SelectList(_securityQuestionService.GetAll(), "SecurityQuestionID", "Question");
如果我没有从下拉列表中选择问题并点击提交按钮,则会显示“The Security Question field is required.
”消息而不是“Security Question is required
”。谁能帮助我理解我在这里做错了什么?
最佳答案
如果整数不可为空,则默认情况下它是必需的。所以范围验证没有失败,但必需验证失败。
您可能希望通过添加必需属性为需要时指定单独的错误消息。
[Required(ErrorMessage="Security Question is required")]
关于c# - RangeAttribute 数据注释未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066196/