大家好,为什么我的过滤验证没有效果?

来源:7-6 【应用】添加数据验证

慕村8337265

2020-10-03

@阿莱克斯刘,帮瞅眼?
图片描述
图片描述
图片描述
我传入的CardNum为空,他依然是由数据库报出来的错。

写回答

2回答

慕田峪0356378

2020-10-04

“我传入的CardNum为空,他依然是由数据库报出来的错”

好像没错啊。

我感觉这里已经不是由数据库报出来的错, 因为你已经在MemberCardCreationForDto class 的属性上加的验证, 不是在model class 的属性上验证的。

建议你去掉model class 的属性上验证(CardNum)【Required(。。。。】试试。

1
2
阿莱克斯刘
model或者dto的验证需要使用model state,课程中有详细讲解这个部分。而你现在使用的maxlength等属性是直接作用于数据库的,换句话来说是在创建数据库的时候给数据库加限制。这个限制是数据库级别的,而不是程序级别的,所以报错来自数据库
2020-10-10
共2条回复

慕田峪0356378

2020-10-04

我感觉你应该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);

}


1
0

.Net 开发电商后端API 从0到精通RESTful

. Net 实战+RESTful思想纵深课程,开发优雅RESTful风格API。

977 学习 · 547 问题

查看课程