2010-06-24 41 views
2

下面是用於數據註釋驗證添加到實體框架模型好友等級:ASP.NET MVC 2驗證一個強類型的型號列表隨着數據註釋異常使用EnableClientValidation()當

[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> 

這適用於服務器端validaton,但只要我放棄Html.EnableClientValidation();在那裏我得到這個錯誤:「給定的密鑰不在字典中。」

..和它指向這一行的看法:

<%: Html.ValidationMessageFor(model => model[i].Title)%> 

回答

0

嘗試把

<% Html.ValidationSummary(); %> 

<% Html.EnableClientValidation(); %> 
+0

我一樣,同樣的結果之前。 – JAKEtheJAB 2010-06-24 16:31:30