我正在尝试“按书”开发一个 ASP.NET 应用程序;我的 Web 窗体实现了 MVP 模式,我的演示者只与服务层对话,而不是与一堆共享我自己的 EF ObjectContext 的存储库对话。到目前为止,一切都很好。现在我正在处理前端,我有一个困境......
假设我有一个名为 txtDateOfBirth 的 asp:TextBox 控件和提交按钮。当用户单击按钮时,我需要将数据从 ASPX 发送到 Presenter 到 Service 到 .... 但问题是最后我不需要 String,而是 DateTime?而且我不知道进行转换的最佳位置:
- 我应该在 ASPX 页面中放置一个验证器,然后在代码隐藏中进行转换吗?
- 或者我应该从表单中收集一堆字符串,为只包含字符串的服务创建一个请求,然后让我的业务模型执行尝试/转换并报告错误?
你有什么建议吗?任何见解表示赞赏...
编辑:好的,在阅读并尝试了您的所有建议后,我决定采用以下方法:
- 代码隐藏和 APSX 负责数据类型转换。我决定使用简单的 CompareValidator 并检查适当的类型,以便代码隐藏可以肯定地转换它。
- 从演示者到服务层的请求是适当类型的。
- 所有其他验证都由业务层完成(包括字符串长度、是否需要、范围等)