2011-02-07 105 views
1

我已經申請DataAnnotation基於驗證到我的兩個性質的這樣Asp.net MVC 3:奇怪的驗證

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

[Required(ErrorMessage = "Description is required")] 
public string Description { get; set; } 

這裏是查看網頁的代碼

@Html.LabelFor(model => model.Obj.Title) 
    @Html.EditorFor(model => model.Obj.Title)    

    @Html.LabelFor(model => model.Obj.Description) 
    @Html.TextAreaFor(model => model.Obj.Description)  

的問題是,在點擊提交按鈕,在客戶端(JS)它只給我錯誤的標題,而不是描述。但它在回發後爲我提供驗證錯誤的描述。

什麼可能的原因?

回答

0

嗯,這很奇怪。無法重現。

型號:

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

    [Required(ErrorMessage = "Description is required")] 
    public string Description { get; set; } 
} 

public class MainViewModel 
{ 
    public MyViewModel Obj { get; set; } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new MainViewModel { Obj = new MyViewModel() }); 
    } 
} 

查看:

@model AppName.Models.MainViewModel 
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 

@using (Html.BeginForm()) 
{ 
    @Html.LabelFor(model => model.Obj.Title) 
    @Html.EditorFor(model => model.Obj.Title)    

    @Html.LabelFor(model => model.Obj.Description) 
    @Html.TextAreaFor(model => model.Obj.Description) 
    <input type="submit" value="OK" /> 
} 

客戶端和服務器驗證做工精細。

+0

我剛剛檢查過我生成的html輸出。發現textarea沒有atrribute data-val =「true」。但對於文本框它有data-val =「true」。你能確認你的嗎? – coure2011 2011-02-07 08:48:41