1

无论出于何种原因,我都开始编写自己的字段验证助手。我想控制正在验证的文本框中的值,而不仅仅是呈现验证消息。

有没有办法从我的自定义扩展代码访问正在验证的 html 控件?

这是一个非常基本的开始:(请不要评判代码,我为了问题而简化了它)

public static MvcHtmlString CustomValidatioMessageFor<TModel, 
        TProperty>(this HtmlHelper obj, Expression<Func<TModel,TProperty>> 
        expression){
    string html = (string)obj.ValidationMessageFor(expression);
    html = "<div>" + /* Here goes the error message blabla... */ + "</div>";
    return new MvcHtmlString(html);
}
4

2 回答 2

0

我想控制正在验证的文本框中的值

验证助手旨在在输入数据后验证数据,但您需要在输入数据时对其进行约束。这意味着您无法使用验证助手来实现它;您需要一种基于挂钩键盘/鼠标事件的更急切的方法。此外,它将完全基于 javascript,因为服务器端没有文本框;你只发布了模型。

于 2013-08-15T10:15:57.963 回答
0

ASP.net MVC 框架使用jquery-validation在将错误传递回服务器之前执行验证客户端。如果验证助手的代码被命中,则数据已经从客户端提交,服务器唯一能做的就是接受或拒绝处理数据。

您可以为字段编写自己的处理程序并定义不同的规则,请参阅jquery 验证演示的源代码,了解对表单字段采取不同方式的多个示例。

于 2013-08-15T12:49:58.687 回答