2011-02-07 91 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