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();
  }
}

如果您不检查,视图将不会知道验证失败。第三,你有没有用正确的属性装饰你的班级?例如:

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 回答