【发布时间】:2012-09-16 09:42:34
【问题描述】:
我有一个不发回错误消息的RequiredAttribute 扩展类。如果我在调试器中检查它,文本就在那里。
public class VierRequired : RequiredAttribute
{
public VierRequired(string controlName)
{
//...
}
public string VierErrorMessage
{
get { return ErrorMessage; }
set { ErrorMessage = value; }
}
// validate true if there is any data at all in the object
public override bool IsValid(object value)
{
if (value != null && !string.IsNullOrEmpty(value.ToString()))
return true;
return false; // base.IsValid(value);
}
}
我这样称呼它
[VierRequired("FirstName", VierErrorMessage = "Please enter your first name")]
public string FirstName { get; set; }
还有 mvc 视图
<%: Html.TextBoxFor(model => model.FirstName, new { @class = "formField textBox" })%>
<%: Html.ValidationMessageFor(model => model.FirstName)%>
如果我使用普通的Required注解就可以了
[Required(ErrorMessage = "Please enter your name")]
public string FirstName { get; set; }
但是自定义没有发回任何错误信息
【问题讨论】:
-
好吧,一方面,您的构造函数与您的类的名称不同。这只是一个转录错误吗?
-
“不发回错误信息”是什么意思?
-
@Benjamin 错误消息似乎没有返回到视图中。但是如果我使用普通的Required注释,他们会这样做。
-
我很怀疑
value.ToString()确实在做你认为的事情。你需要value as String。
标签: c# asp.net-mvc asp.net-mvc-2 data-annotations