我有单独的模型和视图模型类。其中viewmodel类只进行UI级别验证(请参阅:Validation: Model or ViewModel)。验证Model和ViewModel的最佳实践
我可以在控制器中验证模型(vewmodel)是否有效。
问: 如何验证模型(带有数据注释的主要实体)。
我没有开发使用模型对象的视图模型。只需复制属性并添加该特定视图中可能需要的所有属性即可。
//Model Class
public class User
{
[Required]
public string Email {get; set;}
[Required]
public DateTime Created {get; set;}
}
//ViewModel Class
public class UserViewModel
{
[Required]
public string Email {get; set;}
[Required]
public string LivesIn {get; set;}
}
//Post action
public ActionResult(UserViewModel uvm)
{
if(ModelState.IsValid)
//means user entered data correctly and is validated
User u = new User() {Email = uvm.Email, Created = DateTime.Now};
//How do I validate "u"?
return View();
}
应该做这样的事情:
var results = new List<ValidationResult>();
var context = new ValidationContext(u, null, null);
var r = Validator.TryValidateObject(u, context, results);
我在想什么基类是添加(业务实体)此验证的技术,并验证它,当我从映射视图模型类到商业实体。
有什么建议吗?
珠三角@Serghei其实我想知道我该怎么办验证模型类(不绑定查看)。保持我的视图具有来自不同模型类(在ViewModel类中)的属性,以满足特定视图的所有需求。 – Yahya
@Yahya你能举一个例子吗?指出您应该在哪里以及如何进行验证会更容易。 – David
prd我已经在原始问题中为您添加了示例代码。我希望现在有道理。 – Yahya