自定义ValidationMessageFor模板

时间:2010-11-19 00:51:46

标签: asp.net asp.net-mvc validation

我现在正在使用ASP.NET MVC 3进行不引人注目的jquery客户端验证。

默认情况下,ValidationMessageFor会生成包含某些类和属性集的span标记。我希望它生成一个不同的模板。例如,我可能想要一个带有特定背景图像的div标签。

这是否可行,或者我可以从那里获取纯文本错误消息,以便我可以自己设置样式?

由于

1 个答案:

答案 0 :(得分:0)

在MVC 2中,span是硬编码的。无法使用div代替ValidationMessageFor

您可以获得类似于内置帮助程序的消息:

if (modelError != null) {
    builder.SetInnerText(GetUserErrorMessageOrDefault(htmlHelper.ViewContext.HttpContext, modelError, modelState));
}

    private static string GetUserErrorMessageOrDefault(HttpContextBase httpContext, ModelError error, ModelState modelState) {
        if (!String.IsNullOrEmpty(error.ErrorMessage)) {
            return error.ErrorMessage;
        }
        if (modelState == null) {
            return null;
        }

        string attemptedValue = (modelState.Value != null) ? modelState.Value.AttemptedValue : null;
        return String.Format(CultureInfo.CurrentCulture, GetInvalidPropertyValueResource(httpContext), attemptedValue);
    }