我正在为我的网站实施牛仔板(或论坛),我在c#和asp.net中使用MVP模式以及连接到数据库的类型化数据集。我的问题是,我不知道我应该在哪里处理可能的错误并验证传入/传出数据。我想出了两个不同的解决方案:
解决方案1:
view:
不做任何事只是将数据传递给演示者
presenter:
与模型,数据库和视图相关的验证和错误处理
model:
什么也不做,只是从数据库返回数据或错误
解决方案2:
与页面和用户输入相关的 view:
验证和错误处理
presenter:
不做什么只是调解员
model:
与数据库和模型相关的验证和错误处理
那么哪种解决方案更好?
答案 0 :(得分:1)
我个人会代表
的第二个解决方案view:与页面和用户输入相关的验证和错误处理
此。因为它对于简单(f.e输入错误)很重要,可以给用户提供即时反馈,而不是让他等待模型的响应。
答案 1 :(得分:1)
我绝对推荐解决方案2.
尽可能在视图中进行验证,以便用户在发送数据后可以预期交互成功的大部分时间。在应用程序中再次验证以过滤掉无效和/或操纵的请求并应用特定于域的规则。
请记住,由于MVP是一种UI模式,因此模型只是演示者组装的数据容器。域模型,业务逻辑,数据库访问以及最终验证应该位于应用程序本身的基于MVP的UI层下面。