将Twitter Bootstrap验证样式和消息应用于ASP.NET MVC验证

Sib*_*Guy 32 css validation asp.net-mvc jquery-validate twitter-bootstrap

如何集成ASP.NET MVC不显眼验证和Twitter Bootstrap?我希望适当地拥有所有这些验证消息样式.

Len*_*rri 40

如果你使用Bootstrap 2,一个很好的处理方法是......

将此添加到您的_Layout.cshtml:

<script type="text/javascript">

jQuery.validator.setDefaults({
    highlight: function (element, errorClass, validClass) {
        if (element.type === 'radio') {
            this.findByName(element.name).addClass(errorClass).removeClass(validClass);
        } else {
            $(element).addClass(errorClass).removeClass(validClass);
            $(element).closest('.control-group').removeClass('success').addClass('error');
        }
    },
    unhighlight: function (element, errorClass, validClass) {
        if (element.type === 'radio') {
            this.findByName(element.name).removeClass(errorClass).addClass(validClass);
        } else {
            $(element).removeClass(errorClass).addClass(validClass);
            $(element).closest('.control-group').removeClass('error').addClass('success');
        }
    }
});

$(function () {

    $("span.field-validation-valid, span.field-validation-error").addClass('help-inline');
    $("div.control-group").has("span.field-validation-error").addClass('error');
    $("div.validation-summary-errors").has("li:visible").addClass("alert alert-block alert-error");

});

</script>
Run Code Online (Sandbox Code Playgroud)

这些是我在上面找到代码的帖子:

将Bootstrap错误样式与MVC的不显眼错误验证集成

ASP.NET MVC的Twitter Bootstrap验证样式

MVC Twitter Bootstrap不显眼的错误处理


UPDATE

现在我需要在使用Bootstrap 3时也这样做.以下是类名更改后所需的修改:

<script type="text/javascript">

    jQuery.validator.setDefaults({
        highlight: function (element, errorClass, validClass)
        {
            if (element.type === 'radio')
            {
                this.findByName(element.name).addClass(errorClass).removeClass(validClass);
            } else
            {
                $(element).addClass(errorClass).removeClass(validClass);
                $(element).closest('.form-group').removeClass('has-success').addClass('has-error');
            }
        },
        unhighlight: function (element, errorClass, validClass)
        {
            if (element.type === 'radio')
            {
                this.findByName(element.name).removeClass(errorClass).addClass(validClass);
            } else
            {
                $(element).removeClass(errorClass).addClass(validClass);
                $(element).closest('.form-group').removeClass('has-error').addClass('has-success');
            }
        }
    });

$(function () {

    $("span.field-validation-valid, span.field-validation-error").addClass('help-block');
    $("div.form-group").has("span.field-validation-error").addClass('has-error');
    $("div.validation-summary-errors").has("li:visible").addClass("alert alert-block alert-danger");

});

</script>
Run Code Online (Sandbox Code Playgroud)

  • 返回编辑3.0的伟大工作,真的帮助了我 (4认同)
  • 也想感谢你的3.0版本.救了我一些时间.;) (3认同)

Iri*_*dio 24

复制css文件中验证器的css并更改颜色accordinlgly.这样的事应该做

.field-validation-error {
    color: #b94a48;
    display: inline-block;
    *display: inline;
    padding-left: 5px;
    vertical-align: middle;
    *zoom: 1;
}

.field-validation-valid {
    display: none;
}

.input-validation-error {
    /*
    border: 1px solid #ff0000;
    background-color: #ffeeee;
    */
    color: #b94a48;
    border-color: #b94a48;
}

.input-validation-error:focus {
  border-color: #953b39;
  -webkit-box-shadow: 0 0 6px #d59392;
  -moz-box-shadow: 0 0 6px #d59392;
  box-shadow: 0 0 6px #d59392;
}

.validation-summary-errors {
    /*font-weight: bold;*/
    color: #b94a48;
}

.validation-summary-valid {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)


Sha*_*dix 17

我建议以较少的格式包含Bootstrapper并执行与Iridio建议相同的操作,但是在.less.这样你可以有类似的东西:

.validation-summary-errors
{
    .alert();
    .alert-error();
}
.field-validation-error 
{
    .label();
    .label-important();
}
Run Code Online (Sandbox Code Playgroud)

所以当bootstrapper改变时你会自动获取更改.处理MVC默认可见性的常规样式Site.css将保留在原位并处理可见性.


mef*_*ect 8

为什么不使用css!important并将其称为一天:

/* Styles for validation helpers
-----------------------------------------------------------*/
.field-validation-error {
    color: #f00 !important;
}

.field-validation-valid {
    display: none;
}

.input-validation-error {
    border: 1px solid #f00 !important;
    background-color: #fee !important;
}

.validation-summary-errors {
    font-weight: bold;
    color: #f00;
}

.validation-summary-valid {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)


Rom*_*kin 8

在Bootstrap 3上你必须添加:

.validation-summary-errors
{
    .alert();
    .alert-danger();
}
.field-validation-error 
{
    .label();
    .label-danger();
}
Run Code Online (Sandbox Code Playgroud)

你会看到类似的东西:

验证错误演示


Ric*_*ett 5

对于ValidationSummary,您可以使用允许您指定的重载htmlAttributes.这允许您将其设置为使用Twitter Bootstrap警报css样式.

@Html.ValidationSummary(string.Empty, new { @class = "alert alert-danger" })
Run Code Online (Sandbox Code Playgroud)

对于ValidationMessageValidationMessageFor辅助方法存在类似的重载.

  • 这应该是公认的答案.不需要黑客攻击. (2认同)