这是我在Master页面中的脚本部分:
<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>
<% } %>
我已经在博客中发出相同的指令来激活客户端,但不幸的是它对我没用:(我想我错过了什么? 服务器验证工作非常好。
答案 0 :(得分: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>
一切都很好:)
答案 1 :(得分:0)
我认为您可以尝试以下方法来验证代码可能不适合您的原因。
1)请转到浏览器并查看source of the HTML
并确保您尝试包含的脚本文件存在。
2)此外,如果您在Mozilla上进行测试,可以检查代码firebug
,可以将其安装为扩展程序,以查看哪些内容出错。
希望有所帮助
答案 2 :(得分: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();
}
}
如果您不检查,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; }
}