2016-11-27 116 views
0

我是Web API2的新手。我的解决方案有3个项目(MVC,WebAPI2,EF类库)。我有以下疑问。如何使用Web API 2在MVC中进行模型验证?

1)将WebAPI和MVC作为单独的项目分开考虑。这是可取的,还是保持在单个项目中更好?

2)使用WCF,我们可以在MVC中获取服务引用,以利用所有数据库类模型,以便在MVC中轻松地支持控制器并添加模型验证。如何用Web API2做到这一点,因为我不会在MVC中为DB类提供参考。我是否需要在MVC项目中创建重复的DB类模型以进行脚手架目的和模型验证目的?

回答

0

您的标题让我感到困惑,但模型验证可以通过验证属性来完成。我会尝试回答你问题的正文中的问题。

这取决于你期望如何使用你的MVC和WebApi项目。 请记住,如果他们在同一个项目中,您可以使自己更容易,因此您不必过多担心RPC。但谁知道你打算如何使用它们。

WebAPI通常用于与您自己以外的系统进行集成。出于这个原因,(序列化)和请求/响应处理是高度可定制的。用于WebAPI控制器的模型通常被指定或提供给接口要与之集成的系统。

用于WebAPI或MVC控制器的模型应该与您的ORM的实体模型分开。您希望这样做的原因是,实体模型中的数据并不总是适合使用视图或从视图发送回控制器的视图模型的验证。

在这两种情况下,接口WebAPI和MVC控制器的模型都应该被设计为适应您的用例,并且应该与您的实体模型相当分离以实现持久性。

所以要回答你的第二个问题,你可能只需要一组实体模型,可能只有一个dbcontext实现,但是在它自己的项目中包含所有这些,这样如果你确实有单独的MVC和WebAPI项目,它们都依赖于EF项目。

相关问题