MVC3验证,不引人注目的验证 - 用于验证消息的星号

时间:2012-01-03 15:01:11

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

我的观点有限的验证消息空间,因此我想输出一个星号而不是验证消息。以下博客概述了如何通过向验证助手添加额外参数来实现此目的:

http://www.erroronlineone.com/2011/09/12/mvc3-display-an-asterisk-for-error-message/

@Html.ValidationMessageFor(model => model.Name, "*")

但我想输出星号或图像,并使用HTML title属性弹出一个显示验证消息。我是否必须改变不显眼的验证方式?或者你有更好的主意吗?感谢

2 个答案:

答案 0 :(得分:0)

我已经发布了我在这里做过的ASP.NET MVC3 Custom Validation Message Behaviour - 不确定我是以最好的方式做到了,但已经提出了问题。

答案 1 :(得分:0)

一种方式,如果你是游戏,就是编辑不显眼的验证javascript文件。

错误消息显示在onError函数中。在这里,您可以按照自己的方式更改消息元素。例如(未经宣传):

function onError(error, inputElement) {  // 'this' is the form element
    var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
        replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false;

    container.removeClass("field-validation-valid").addClass("field-validation-error");
    error.data("unobtrusiveContainer", container);

    if (replace) {
        container.empty();

        // Set the "title" attribute and change the text to an asterisk.
        error.prop("title", error.text());
        error.text("*");
        error.removeClass("input-validation-error").appendTo(container);
    }
    else {
        error.hide();
    }
}