我有单独的模型和视图模型类.其中viewmodel类仅进行UI级别验证(请参阅:验证:模型或ViewModel).
我可以在控制器中验证模型(vewmodel)是否有效.
问:我如何验证模型(带有数据注释的主要实体).
我没有使用模型对象开发viewmodel.只需复制属性并添加该特定视图中可能需要的所有属性.
//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();
}
Run Code Online (Sandbox Code Playgroud)
应该做这样的事情: …
我想为MVC2创建一个自定义验证属性,用于不从RegularExpressionAttribute继承但可以在客户端验证中使用的电子邮件地址.谁能指出我正确的方向?
我尝试了一些简单的事情:
[AttributeUsage( AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false )]
public class EmailAddressAttribute : RegularExpressionAttribute
{
public EmailAddressAttribute( )
: base( Validation.EmailAddressRegex ) { }
}
Run Code Online (Sandbox Code Playgroud)
但它似乎对客户不起作用.但是,如果我使用RegularExpression(Validation.EmailAddressRegex)]它似乎工作正常.