asp.net mvc - Where to put validation annotations ViewModel or Domain object? -


my question is

as passing usercreateviewmodel create controller means validation(modelstate.isvalid) work on usercreateviewmodel if annotation defined on it. can not define dataannotation on each of viewmodels because alot of work. instead want put on user domain model. how fix create method fix annotation work , mapper without adding more code controller.

//my controller create method

[httppost] public actionresult create(usercreateviewmodel user) {     if (modelstate.isvalid)     {         var createuser = new user();         mapper.map(user, createuser);          _repository.add(createuser);          return redirecttoaction("details", new { id = createuser.userid });     }      return view("edit", user); } 

//usercreateviewmodel -> create specific view model

public class usercreateviewmodel {     public string username { get; set; }     public string password { get; set; } } 

//user -> domain object

[metadatatype(typeof(user.uservalidation))] public partial class user  {     private class uservalidation     {         [required(errormessage = "username required.")]         [stringlength(50, minimumlength = 2, errormessage = "{0} between {1} {2}")]         [regularexpression(@"(\s)+", errormessage = "white space not allowed")]         public string username { get; set; }          [required(errormessage = "password required.")]         [stringlength(50, minimumlength = 2, errormessage = "{0} between {1} {2}")]         public string password { get; set; }     } }   

validation should put @ least on view model because receive user input. far validation on model concerned add long passing view model post action (which should do) validation on model ignored. of course that's not problem here because model might reused on other applications don't use view models , way model guaranteed valid. far asp.net mvc concerned step not necessary.


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -