使用 MVC3 和 jQuery 对整数进行不显眼的验证
不引人注目的验证不区分数据类型。 MVC 仅向所有数字字段添加“数字”验证。
这会产生不良影响,因为 1.2345 是一个有效整数。当您提交时,MVC 绑定器无法解析该值。因此,您不会从服务器获取客户端错误,而是从服务器获取错误。
解决这个问题的最佳方法是什么?有现成的解决方案吗?
Unobtrusive validation does not distinguish between data types. There's only 'number' validation that MVC adds to all numeric fields.
This has an unwanted effect of 1.2345 being a valid integer. When you submit, MVC binder cannot parse the value. So instead of getting a client-side error you get it from server.
What is the best way of solving this? Are there existing solutions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好的,这就是我所做的。
为 Int32 编写了我自己的 EditorTemplate (Views/Shared/EditorTemplates/Int32.cshtml):
添加了一个验证适配器(在 $(document).ready 上运行此适配器:)
编写了如下所示的 Javascript 函数
isInteger
现在如果您键入任何带有小数点的内容,整数字段会给出一个很好的消息“字段必须是整数”。
将很高兴听到更好的方法。
Ok, here's what I did.
Wrote my own EditorTemplate for Int32 (Views/Shared/EditorTemplates/Int32.cshtml):
Added a validation adapter (run this on $(document).ready:)
Wrote Javascript function
isInteger
that looks like thisNow integer fields give a nice message "Field must be an integer" if you type anything with decimal dot in it.
Will be glad to hear of a better way.