【发布时间】:2009-09-09 03:59:18
【问题描述】:
我遵循了这些教程:
http://www.asp.net/learn/mvc/tutorial-39-cs.aspx http://schotime.net/blog/index.php/2009/03/31/integrating-xval-validation-with-linq-to-sql/
为了使用数据注释对 LINQ-To-SQL 生成的类强制执行数据验证。元数据类如下所示:
[MetadataType(typeof(PositionValidation))]
public partial class Position
{
}
public class PositionValidation
{
[Required]
public string Title { get; set; }
}
验证工作正常,但前提是我在控制器中执行此操作:
if (ModelState.IsValid)
{
_positions.AddPosition(newPosition);
return RedirectToAction("List");
}
如果我忽略了对有效 ModelState 的检查,它会尝试将其添加到数据库中,即使 Title 为空。结果,我得到一个标题为空白的条目(这也适用于编辑)。
我的印象是,除了控制器/视图之外,数据验证也在模型端强制执行它。这是否意味着我也必须添加额外的代码才能在 Position 类中进行验证?如果是这样,这不违反 DRY 吗?
【问题讨论】:
标签: asp.net-mvc validation model controller