0

MVC3 アプリケーションがあります。

これはモデルです:

public class Customer
{
    [Required]
    public string Email { get; set; }

    [Required]
    public string Answer1 { get; set; }

    [Required]
    [NotEqualTo("Answer1")]
    public string Answer2 { get; set; }
}

web.config で onubtrusive 検証を有効にしました。

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

そして、これは私の_layout.cshtmlで:

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/mvcfoolproof.unobtrusive.js")" type="text/javascript"></script>

ここでの問題は、MvcFoolproof が機能していないことです。mvc データ注釈の検証Requiredが機能しています。ここで何を見逃したのですか?ありがとう!

4

1 に答える 1

1

まず、using Foolproof;あなたのモデルに含まれていると思います。

次に、このスクリプトも必要になると思います (クライアント側の検証が適切に機能するため) <script src="/Scripts/MvcFoolproofJQueryValidation.min.js"></script>

3 番目に、NuGet を使用してフールプルーフ パッケージを追加しましたか? のようなものpackages.configが含まれている必要があります<package id="foolproof" version="0.9.4517" targetFramework="net45" />

また、ビューに検証メッセージを表示していますか? これらは必要なプロパティに対して表示されていますが、NotEqualTo属性に対しては表示されていませんか?

最後に、ビューにこれらすべてのプロパティを正しく表示しています@Html.EditorFor(model => model.Answer1)か? Answer2 に比較するものがない限り、それは確かに検証されません。そして、フォームで jQuery 検証呼び出しを使用していますか?

ここでは主に暗闇で撮影しますが、フールプルーフを機能させるには、通常、クリックして操作するだけです.

于 2013-11-20T09:42:16.260 に答える