使用Bootstrap设置数据验证错误

Ker*_*man 9 asp.net-mvc-4 twitter-bootstrap twitter-bootstrap-3

我正在开发一个ASP.NET MVC 4项目.我想使用Bootstrap 3.0在我的登录页面上设置数据验证错误的样式.当我调试页面并且它提供数据验证错误时,此代码在我的登录表单的源中消失:

 <form action="/Account/Login" class="col-md-4 col-md-offset-4 form-horizontal well" method="post"><input name="__RequestVerificationToken" type="hidden" value="Zbg4kEVwyQf87IWj_L4alhiHBIpoWRCJ9mRWXF6syGH4ehg9idjJCqRrQTMGjONnywMGJhMFmGCQWWvBbMdmGFSUPqXpx6XaS4YfpnbFm8U1" /><div class="validation-summary-errors"><ul><li>The user name or password provided is incorrect.</li>
</ul></div>    <div class="form-group control-group">
   <div class="col-md-6 col-md-offset-3">
                <input class="input-validation-error form-control" data-val="true" data-val-required="User name alan? gereklidir." id="UserName" name="UserName" placeholder="Kullan?c? Ad?" type="text" value="" />
                <span class="field-validation-error" data-valmsg-for="UserName" data-valmsg-replace="true">User name alan? gereklidir.</span>
       </div>
        </div>
    <div class="form-group">
    <div class="col-md-6 col-md-offset-3">
                <input class="input-validation-error form-control" data-val="true" data-val-required="Password alan? gereklidir." id="Password" name="Password" placeholder="?ifre" type="password" />
                <span class="field-validation-error" data-valmsg-for="Password" data-valmsg-replace="true">Password alan? gereklidir.</span>
        </div>
    </div>
    <div class="form-group">
    <div class="col-md-4 col-md-offset-4">
        <button class="btn btn-default" type="submit">Giri? Yap</button>
        </div>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

如何使用Bootstrap 3设置标签的"for = inputError"属性这些错误?

Dmi*_*try 17

正如它在Bootstrap的文档中所示,您需要将类has-error应用于包含输入的div并具有类form-group:

<div class="form-group has-error">
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

根据条件的结果为每个要检查的属性编写条件并应用类是非常难看的has-error,尽管您可以这样做:

<div class="form-group @(Html.ViewData.ModelState.IsValidField(Html.IdFor(x => x.UserName)) ? null : "has-error" )">
Run Code Online (Sandbox Code Playgroud)

这将负责服务器端验证.但是,您还需要考虑客户端验证.为此,您需要编写一些jQuery来检查类的存在field-validation-errorhas-error根据结果应用类.

您可以自己动手,但我建议您查看TwitterBootstrapMVC,它会自动为您完成所有这些工作.所有你必须写的是:

@Html.Bootstrap().FormGroup().TextBoxFor(m => m.UserName)
Run Code Online (Sandbox Code Playgroud)

免责声明:我是TwitterBootstrapMVC的作者.在Bootstrap 2中使用它是免费的.对于Bootstrap 3,它需要付费许可证.