0

私はクライアント側の検証を解決しようとしており、いくつかのチュートリアルに従っています。非常に単純に見えますが、プロジェクトで機能しない理由がわかりません。以下のコードです:

 <script type="text/javascript" src="/Scripts/jquery-1.4.1.min.js"></script>
 <script type="text/javascript" src="/Scripts/jquery.validate.js"></script>
 <script type="text/javascript" src="/Scripts/MicrosoftMvcJQueryValidation.js"></script>

    <% Html.EnableClientValidation(); %>
    <% using (Html.BeginForm()) {%>
    <%: Html.ValidationSummary("Please Correct the errors and try again")%>

    <div class="editor-label">
            <%: Html.LabelFor(model => model.test,"Test") %>
        </div>
        </td>
        <td>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.test)%>
            <%: Html.ValidationMessageFor(model => model.test)%>
        </div>
        </td>
        </tr>

編集:マスターページ

 <script type="text/javascript" src="<%= Url.Content("~/scripts/jquery-1.5.1.js") %>"></script>
    <script type="text/javascript" src="<%= Url.Content("~/scripts/jquery.validate.js") %>"></script>
    <script type="text/javascript" src="<%= Url.Content("~/scripts/jquery.validate.unobtrusive.js") %>"> </script>
    <script src="/Scripts/jquery-ui.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="/Scripts/tiny_mce/jquery.tinymce.js"></script>
    <script src="/Scripts/ie6.js" type="text/javascript"></script>

そのフィールドのタブを押したときにクライアント側の検証が機能しない理由。

4

1 に答える 1

2

ASP.NET MVC 3 では、jqueryクライアントjquery.validate側の検証を行うための既定のフレームワークです。したがって、コードを次のように変更します。

<script type="text/javascript" src="<%= Url.Content("~/scripts/jquery-1.5.1.js") %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/scripts/jquery.validate.js") %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/scripts/jquery.validate.unobtrusive.js") %>"></script>

<% using (Html.BeginForm()) { %>
    <%= Html.ValidationSummary("Please Correct the errors and try again") %>

    <div class="editor-label">
        <%= Html.LabelFor(model => model.test, "Test") %>
    </div>
    <div class="editor-field">
        <%= Html.TextBoxFor(model => model.test) %>
        <%= Html.ValidationMessageFor(model => model.test) %>
    </div>
<% } %>

注意事項:

  • ASP.NET MVC 3 RTM および Tools Update にバンドルされているデフォルトの jQuery 1.5.1 を使用します。jquery.validate プラグインと jquery バージョンの間に互換性がないため、IIRC として新しいバージョンの jQuery を使用していることを確認してください。
  • 使用するjquery.validate.js
  • whichを使用jquery.validate.unobtrusive.jsすると、jQuery.validate プラグインが Html ヘルパーによって出力される HTML5 の data-* 属性に控えめにアタッチされます。
  • Url.Content場所をハードコーディングする代わりに、ヘルパーを使用して静的リソースを参照します。
  • もう電話する必要はありませんHtml.EnableClientValidation()
  • プレフィックスで始まる JavaScript を含める必要はもうありませんMicrosoft*

最後の注意: web.config で目立たないクライアント スクリプトの検証が有効になっていることを確認してください。

<appSettings>
    ...
    <add key="ClientValidationEnabled" value="true" />
</appSettings>

これらのスクリプトの最新バージョンを取得する最善の方法は、ASP.NET MVC 3 Tools Updateをインストールし、Visual Studio の既定のウィザードを使用して新しい ASP.NET MVC 3 プロジェクトを作成し、それらの 3 つのスクリプトをフェッチすることです。

于 2011-07-14T15:05:36.323 に答える