我正在一个mvc3应用程序,我需要修改ValidatioSummary消息的样式,为此,我创建了我自己的HTM帮助程序,如下所示:自定义validationSummary HTML帮手不工作在客户端
public static MvcHtmlString MyValidationSummary(this HtmlHelper helper){ string retainHtml +=""; int counterror = 0; if (helper.ViewData.ModelState..IsValid) { TagBuilder tag = new TagBuilder("div"); tag.Attributes.Add("class", "validation-summary-valid"); tag.Attributes.Add("data-valmsg-summary", "true"); tag.InnerHtml += "<span> There was" + countererror + "errors found<ul><li></li></ul>" retainHtml += tag.ToString(); return MvcHtmlString.Create(retainHtml); } if (!helper.ViewData.ModelState.IsValid) { TagBuilder tag = new TagBuilder("div"); tag.Attributes.Add("class", "validation-summary-errors"); tag.Attributes.Add("data-valmsg-summary", "true"); retainHtml +="<div class='validation-summary-errors'><span>"; counterror = 1; string temretainhtml =""; foreach (var key in helper.ViewData.ModelState.keys) } foreach (var err in helper.ViewData.ModelState[key].Errors) temretainhtml += "<li>Error " + countererror++ + " : " + err.ErrorMessage + "</li>"; } retainHtml += "Error ! there was " + --countererror + " errors found"; retainHtml += "</span>"; retainHtml += "<ul>"; retainHtml += temretainhtml; retainHtml += "</ul></div>"; } return MvcHtmlString.Create(retainHtml); } } }
这可以完美兼容服务器端验证,但我需要实现在客户端验证这种风格为好,现在的形式在页面上的客户端上显示的ValidationSummary但使用默认的MVC格式,而不是我在HTML帮助程序中指定的格式,我一直在做很多研究,但不幸的是我还没有运气,我是否需要在jquery.validate.unobtrusive.js文件中做任何更改以应用这些更改?或者我需要在jQuery中创建另一个验证文件?我在jquery中的经验非常差,现在我很失落,任何帮助你都可以给我,请大家非常感激。
非常感谢!
如果您在您的视图中使用剃刀我认为你可以控制在何处以及如何显示验证标签 – 2012-03-27 16:44:28
我在表单的开始处使用我自己的助手@ Html.MyValidationSummary()紧跟在@using(Html.BeginForm())后面,但仍然在客户端不起作用,只在验证完成时调用服务器端,有什么想法? – Cacharry 2012-03-28 09:09:53