Jquery ASP.NET MVC 2使用EnableClientValidation()验证具有数据批注的强类型模型列表时发生异常
下面是用于向实体框架模型添加数据注释验证器的buddy类:Jquery ASP.NET MVC 2使用EnableClientValidation()验证具有数据批注的强类型模型列表时发生异常,jquery,asp.net-mvc,validation,client-side,Jquery,Asp.net Mvc,Validation,Client Side,下面是用于向实体框架模型添加数据注释验证器的buddy类: [MetadataType(typeof(Result_Validation))] public partial class Result { } [Bind(Include = "Title,Description")] public class Result_Validation { [Required(ErrorMessage = "Title is required")] public string Titl
[MetadataType(typeof(Result_Validation))]
public partial class Result
{
}
[Bind(Include = "Title,Description")]
public class Result_Validation
{
[Required(ErrorMessage = "Title is required")]
public string Title { get; set; }
[Required(ErrorMessage = "Description is required")]
public string Description { get; set; }
}
以下是我的看法:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IList<Result>>" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Test</title>
</head>
<body>
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<% for (int i = 0; i < 4; i++) { %>
<div class="editor-label">
<%: Html.LabelFor(model => model[i].Title)%>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model[i].Title)%>
<%: Html.ValidationMessageFor(model => model[i].Title)%>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model[i].Description)%>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model[i].Description)%>
<%: Html.ValidationMessageFor(model => model[i].Description)%>
</div>
<% } %>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
</body>
</html>
试验
型号[i].标题)%>
型号[i].标题)%>
型号[i].标题)%>
型号[i].说明)%>
型号[i].说明)%>
型号[i].说明)%>
这对于服务器端验证很好,但只要我删除Html.EnableClientValidation();在那里我得到了一个错误:“给定的键在字典中不存在。”
…它指向视图中的这条线:
<%: Html.ValidationMessageFor(model => model[i].Title)%>
model[i].Title)%>
试着放
<% Html.ValidationSummary(); %>
以前
<% Html.EnableClientValidation(); %>
试着放
<% Html.ValidationSummary(); %>
以前
<% Html.EnableClientValidation(); %>