22

ASP.net MVC の基本を学ぼうとしていますが、クライアント側の検証が機能しない理由がよくわかりません。

これは両方の web.config ファイルにあります (1 つはグローバル、1 はビュー フォルダーにあります)。

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

これは_layout.cshtmlファイルにあります

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js")
@Scripts.Render("~/Scripts/jquery.validate.min.js")

これは、登録をテストしている私のビューモデルです:

public class RegisterVM
    {
        [Required(ErrorMessage="Username Required")]
        public string username { get; set; }

        [RegularExpression(@"((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})")]
        [Required(ErrorMessage="Password Required")]
        public string password { get; set; }

        [Compare("password", ErrorMessage="Passwords do not match")]
        public string passwordConfirm { get; set; }
    }

そして、これは私のhtmlです

@using(@Html.BeginForm()){

    @Html.LabelFor( model => model.username)
    @Html.EditorFor( model => model.username)
    @Html.ValidationMessageFor( model => model.username)<br />

    @Html.LabelFor( model => model.password)
    @Html.PasswordFor( model => model.password)
    @Html.ValidationMessageFor( model => model.password)<br />

    @Html.LabelFor( model => model.passwordConfirm)
    @Html.EditorFor( model => model.passwordConfirm)
    @Html.ValidationMessageFor( model => model.passwordConfirm)<br />

    <input type="submit" value="Register" />


}

ここに投稿したくありませんでした。ここに関連するいくつかのトピックを読みましたが、問題を解決できないようです。送信をクリックすると、投稿/取得リクエストが行われます。

4

6 に答える 6

25

これはうまくいくはずです。validate.unobtrusive.min.jsの前にvalidate.min.jsをロードする必要があると思います

于 2013-05-29T10:56:14.653 に答える
3

あなたのページには、ページの下部にこれらの2行があります

よく見てください

@section Scripts {
 @Scripts.Render("~/bundles/jqueryval")
}
于 2014-01-01T11:02:04.537 に答える
2

これは、目立たないものの前に jquery.validate.min.js をロードしないためです。

于 2013-05-29T11:21:33.303 に答える
0
$('#divParent').load("url",
                     function () {
                     $.validator.unobtrusive.parse($('form'));}
                );

注: これは、ajax 呼び出しを使用して 'div' 内で動的に 'form' または 'PartialView' をロードする場合に必要です。

于 2015-10-13T12:37:19.120 に答える
0

検証が必要なすべてのページでこれらのファイルを参照するだけです。

<script src="~/Scripts/jquery.validate.js"></script>    
于 2016-11-06T16:20:28.440 に答える