相关疑难解决方法(0)

Model和ViewModel的验证最佳实践

我有单独的模型和视图模型类.其中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)

应该做这样的事情: …

c# model viewmodel asp.net-mvc-2-validation asp.net-mvc-2

13
推荐指数
1
解决办法
2万
查看次数

如何为MVC创建自定义验证属性

我想为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)]它似乎工作正常.

asp.net-mvc asp.net-mvc-validation

12
推荐指数
1
解决办法
3万
查看次数