采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
@阿莱克斯刘,帮瞅眼? 我传入的CardNum为空,他依然是由数据库报出来的错。
“我传入的CardNum为空,他依然是由数据库报出来的错”
好像没错啊。
我感觉这里已经不是由数据库报出来的错, 因为你已经在MemberCardCreationForDto class 的属性上加的验证, 不是在model class 的属性上验证的。
建议你去掉model class 的属性上验证(CardNum)【Required(。。。。】试试。
目前是数据库报出来的,也就是说,我的DTO验证没有生效,我是想知道为什么DTO没有验证数据。
model或者dto的验证需要使用model state,课程中有详细讲解这个部分。而你现在使用的maxlength等属性是直接作用于数据库的,换句话来说是在创建数据库的时候给数据库加限制。这个限制是数据库级别的,而不是程序级别的,所以报错来自数据库
我感觉你应该return的是为UI工作的DTO class instance, 不是model class instance
请试一下
if(userRespository.Save())
{
var memberCardToReturn = _mapper.Map<MemberCardDto>(card);
return CreatedAtRoute("GetMemberCardById", new {userId, cardId = memberCardToReturn.Id}, memberCardToReturn);
}
登录后可查看更多问答,登录/注册
. Net Core实战+RESTful思想纵深课程,开发优雅RESTful风格API。
388 2
449 2
561 1
978 2
1.3k 3