ブートストラップ 3.2.0、ブートストラップバリデーター 0.5.2、および mvc 5.1 を使用しています。私は MVC の専門家ではないので、経験豊富なユーザーには解決策が明らかかもしれません。
私が抱えている問題は、モデルが「モデル名.フィールド名」の形式で入力要素名を出力することです。
@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']: {
ブートストラップバリデーターがピリオド付きの要素名を受け入れるようにする方法はありますか、または「単純な」要素名をモデルフィールド名にマップするために何らかの方法でモデルを変更する必要がありますか?