我正在使用 bootstrap 3.2.0、bootstrapvalidator 0.5.2 和 mvc 5.1。我不是 MVC 方面的专家,所以对于更有经验的用户来说,解决方案可能是显而易见的。
我遇到的问题是模型以“modelname.fieldname”格式发出输入元素名称,因此,生成的用户名输入元素是
@Html.TextBoxFor(model => Model.LoginViewModel.UserName, new { @class = "form-control logininput", @placeholder = "User Name", @tabindex = 0 })
将生成如下所示的 html:
<input class="form-control logininput" data-val="true" data-val-required="The Username field is required." id="LoginViewModel_UserName" name="LoginViewModel.UserName" placeholder="User Name" tabindex="0" type="text" value="">
我遇到的问题是引导验证器想要按名称引用元素,并且如果名称中的句点(LoginViewModel.UserName)无效:
$('#loginform').bootstrapValidator({
fields: {
LoginViewModel.UserName: {
message: 'The user name is not valid',
container: '#erruser',
validators: {
notEmpty: {
message: 'The user name is required'
}
}
}
}
});
如果我在 html 帮助器上指定名称,引导验证器效果很好,但模型不会验证:
@Html.TextBoxFor(model => Model.LoginViewModel.UserName, new { @class = "form-control logininput", @placeholder = "User Name", @tabindex = 0, Name="UserName" })
我也尝试过转义和包围,但无济于事:
LoginViewModel\\.Password: {
和
LoginViewModel['Password']: {
有没有办法让 bootstrapvalidator 接受带有句点的元素名称,或者我是否必须以某种方式修改模型以将“简单”元素名称映射到模型字段名称?