我已经完成了asp.net mvc的大多数表单验证,如IDataErrorInfo、Xval、ValidationToolkit等。这是与电话号码或信用卡验证有关的,其中您的模型将有一个名为" phone“或"CreditCardNumber”的属性,但是UI/视图将在三个文本框中显示值(通过在每个文本框中拆分3-3-4 )。因此,如何在"Phone“字段中获取这三个输入,并在模型中分别验证它们,如
然后使用上述任何一个给定的验证来显示/添加所有三个文本框的错误样式(更喜欢使用IDataErrorInfo)
如果其他线程有解决方案,请告诉我。
提前谢谢。
发布于 2009-09-10 23:20:49
我能澄清你的问题吗?您是否在问如何将单个模型属性拆分为UI的多个显示部件,同时在模型自验证单个属性时保留多个部分的知识?
我认为这是的两个不同的问题,。后者是一个简单的正则表达式验证问题,可以应用于您的模型验证。例如,验证应用程序块提供了对此的支持。看看这个大卫·海登博客。
前者可以通过一个特定的自定义模型绑定器来解决,它重新构成了这三个字段。这是一种既好又干净的方法。或者,您可以从FormCollection值中自己将它们粘合在一起。
但是,您应该将这两个问题看作是不同的:无论数据来自何处(GUI、web服务、文件导入等),您的模型总是希望能够验证自己。而三个字段的分割只是该特定网页的一个要求。
发布于 2009-09-10 18:27:17
为什么不为这3个输入字段设置正则表达式呢?
发布于 2009-09-10 18:33:52
曾在下面的文章中将模型中的单个属性拆分为UI上的多个字段:
分裂日期和时间
这可能对你有帮助。
https://stackoverflow.com/questions/1406910
复制相似问题