我使用的是 ASP.NET MVC 3 代码优先,并且我已经在我的模型中添加了验证数据注释。这是一个示例模型:
public class Product
{
public int ProductId { get; set; }
[Required(ErrorMessage = "Please enter a name")]
public string Name { get; set; }
[Required(ErrorMessage = "Please enter a description")]
[DataType(DataType.MultilineText)]
public string Description { get; set; }
[Required(ErrorMessage = "Please provide a logo")]
public string Logo { get; set; }
}
在我的网站中,我有一个创建新产品的多步骤过程 - 第 1 步输入产品详细信息,第 2 步输入其他信息等。在每一步之间,我将每个对象(即产品对象)存储在 Session 中,所以用户可以回到流程的那个阶段并修改他们输入的数据。
在每个屏幕上,我都有客户端验证,可以很好地使用新的 jQuery 验证。
最后一个阶段是确认屏幕,之后在数据库中创建产品。但是,因为用户可以在各个阶段之间跳转,所以我需要验证对象(产品和其他一些对象)以检查它们是否正确完成了数据。
有没有办法以编程方式对具有数据注释的对象调用 ModelState 验证?我不想遍历对象上的每个属性并进行手动验证。
如果可以更轻松地使用 ASP.NET MVC 3 的模型验证功能,我愿意接受有关如何改进此过程的建议。