0

これはマスターページの私のスクリプト部分です:

<script src="../../Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.ui.datepicker.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.ui.core.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.ui.widget.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script>

<script src="../../Scripts/Validation/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/Validation/MicrosoftMvcValidation.js" type="text/javascript"></script>

そして、これは私のフォームがどのように見えるかです:

    <% Html.EnableClientValidation(); %>
                <% using (Html.BeginForm("Inscription", "Home", FormMethod.Post, new { @class = "search_form", enctype = "multipart/form-data"}))
       { %>
        <%: Html.ValidationSummary(true) %>
            <div class="editor-label">
           <p>
            <%: Html.LabelFor(model => model.Mailag) %>
            </p>
        </div>
        <div class="editor-field">
        <p>
            <%: Html.EditorFor(model => model.Mailag, new { @class = "text longfield" })%>
            <%: Html.ValidationMessageFor(model => model.Mailag) %>
            </p>
// the reste of code is similaire to the first editor label :
        </div>
    <% } %>

ブログの同じ手順に従ってクライアント側を有効にしましたが、残念ながらうまくいきませんでした:(ここで何かを見逃したと思いますか?サーバーの検証はうまく機能します。

4

3 に答える 3

1

すべて削除しMicrosoft*.jsて、これに置き換えました:

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

すべてうまくいきます:)

于 2012-05-19T12:06:00.843 に答える
0

次のことを試して、コードが機能しない理由を確認できると思います。

1)ブラウザにアクセスしてを参照しsource of the HTML、含めようとしているスクリプト ファイルがそこにあることを確認してください。

2) また、拡張機能としてインストールできる Mozilla でテストしている場合は、何が問題なのかを確認するためにコードを調べることができます。firebug

それが役に立てば幸い

于 2012-05-18T19:47:42.050 に答える
0

あなたのコードにあまり問題があるとは思えませんが、 MicrosoftAjax.jsへの参照が欠落しているようです 。それを含めてみてください:

また、あなたのコントローラーはどのように見えますか?modelStateが有効かどうかを確認していますか?

[HttpPost]
public ActionResult Create(Course course)
{
  try
  {
    if (ModelState.IsValid)
    {
      _courses.Add(course);
      return RedirectToAction("Index");
    }
    return View();
  }
  catch
  {
    return View();
  }
}

それを確認しないと、ビューは検証が失敗したことを認識しません。そして 3 番目に、クラスを正しい属性で装飾しましたか? 例えば:

public class Course
{
  [Required(ErrorMessage = "Course title is required")]
  public string Title { get; set; }

  [StringLength(5, ErrorMessage = "Course can have up to 5 days")]
  public string Days { get; set; }    

}
于 2012-05-19T10:18:58.030 に答える