asp.net mvc - automapper, On Create action on the controller. Confused -
i have everthing set automapper work. attribute working fine , filling dto. controller create action looks below
[httppost] [automap(typeof(user), typeof(usercreatedto))] public actionresult create(user user) { if (modelstate.isvalid) { _repository.create(user); return redirecttoaction("details", new { id = user.userid }); } return view("edit", user); }
i have dataannotation set on user object entity object , passed repository interface via implementation , using user object everywhere.
what want below using same above code.
[httppost] [automap(typeof(user), typeof(usercreatedto))] public actionresult create(usercreatedto userdto) { if (modelstate.isvalid) { _repository.create(userdto); return redirecttoaction("details", new { id = userdto.userid }); } return view("edit", userdto); }
question: dataannotation on usercreatedto limit want validate. once validation passed there problem when pass userdto create method not allowing me user object in interface below
public interface iuserrepository { iqueryable<user> getallusers(); user getuserbyid(guid id); void create(user user); user edit(user user); void delete(user user); void save(); }
i can not change code replace usercreatedto in interface , repository , if have usereditdto/usershowdto. how solve problem?. have explained as possible.
why don't map user object before calling create? don't need use attributes. can call map directly.
mapper.createmap<usercreatedto, user>(); var user = new user(); mapper.map<usercreatedto, user>(userdto, user);
set debugger stop after map call , check make sure values copied in correctly.
Comments
Post a Comment