创建一个自定义HtmlHelper,为MVC 5实现HTML5客户端验证

时间:2016-09-03 12:23:03

标签: c# asp.net-mvc razor

由于HTML5支持现在变得如此广泛,我想到了禁用基于jQuery.validate的默认MVC5客户端验证系统,并创建了一组自定义HtmlHelper,只需将required="required"属性添加到{使用<input>属性修饰ViewModel属性时的{1}}字段。

目前,我的代码如下所示:

[Required]

它运行良好,唯一的问题是public static MvcHtmlString Html5TextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression) { var required = typeof(TProperty).GetProperties().Any(prop => Attribute.IsDefined(prop, typeof(RequiredAttribute))); var requiredAttribute = required ? new {required = "required"} : null; var html = new StringBuilder(); helper.ViewContext.ClientValidationEnabled = false; html.Append(helper.TextBoxFor(expression, requiredAttribute)); helper.ViewContext.ClientValidationEnabled = true; return new MvcHtmlString(html.ToString()); } 变量始终为false,即使ViewModel属性设置为required也是如此。

我做错了什么?

0 个答案:

没有答案