ASP.NET MVC3中是否有一种方法可以自定义Html.ValidationMessageFor(...)方法的结果?例如,在错误文本旁边添加图像或类似的... 但我希望能够更改图像,无论验证是否成功......
答案 0 :(得分:11)
您可以看到错误包含在Css类中,您需要做的就是根据自己的意愿使用该Css类。
默认MVC3包含在styles.css
/* Styles for validation helpers
-----------------------------------------------------------*/
.field-validation-error
{
color: #ff0000;
}
.field-validation-valid
{
display: none;
}
.input-validation-error
{
border: 1px solid #ff0000;
background-color: #ffeeee;
}
.validation-summary-errors
{
font-weight: bold;
color: #ff0000;
}
.validation-summary-valid
{
display: none;
}
只需在那里添加图片。
答案 1 :(得分:7)
烨 你可以写你自己的扩展来做到这一点
public static MvcHtmlString ValidationMessageFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
{
TagBuilder div = new TagBuilder("div");
div.AddCssClass("aside");
string modelName = ExpressionHelper.GetExpressionText(expression);
ModelState state = htmlHelper.ViewData.ModelState[modelName];
if (state != null)
if ((state.Errors != null) && (state.Errors.Count > 0))
div.AddCssClass("invalid");
else
div.AddCssClass("valid");
div.InnerHtml = htmlHelper.ValidationMessageFor(expression).ToString();
return MvcHtmlString.Create(div.ToString());
}
然后使用类似的东西
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
最后,你需要为无效和旁边的类定义ur css来自定义错误的外观。