asp.net-mvc-4 – 如何在一个Web应用程序中最好地组合Web Api和MVC
|
我即将创建一个简单的Web应用程序,我想知道我是否应该使用ASP.NET MVC 4新功能的Web API。 最好的方式是做什么? 我做了一些研究,我发现有两个选择: 选项1 使Web Api成为我的服务层,并从控制器中调用它来读/写数据,并使用视图模型和剃刀渲染视图。 选项2 使Web Api成为我的服务层,并使用Javascript直接从视图中调用它。 我不是选项2的大粉丝,因为我觉得我忽略了仅用于页面之间重定向的控制器。此外,我更喜欢使用剃刀而不是Javascript。 如果我选择选项1,我必须在控制器中创建一个Web API的实例?因为这样觉得我在做错事。 什么是最好的选择?有没有其他的选择我没有考虑过? 如果你能给出一些可以帮助我的参考书或书籍,我会很感激。 谢谢。 解决方法根据我的业务规则,我通常有另一个层(根据应用程序的大小和复杂程度,可以是不同的项目/组件)。你可以打电话给这个商业服务,或者你的案件是什么。所以MVC控制器和API控制器都使用这个层;这使得应用程序变得干燥。 我个人更喜欢只将复杂的操作保留在我的业务层,这意味着如果我需要从我的持久层读取一些东西来显示在我的视图中,我直接在MVC控制器上进行。这是一个个人偏好的问题,但我更愿意去CQRS的方式。 所以你MVC控制器将会实例化这些业务服务(如果你使用IoC,他们将被注入你的控制器)。对于读取操作,您可以选择直接访问持久层或使用其他读取策略。 您的API控制器也会发生这种情况,他们将使用这种“常见”层次的服务。 您不需要在MVC控制器上实例化API控制器。 没有一种方法可以构建您的应用程序,只有不同的方式,每个人都有或多或少的痛苦。 如果你正在考虑在你的应用程序中引入测试(你应该:));那么你应该以一种容易测试其每个部分的方式进行结构化。 只是我的2美分 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core – VSTS – 构建ASP.NET Core 2.0应用程序失败
- asp.net – 如何将Controller上的Ajax reqest重定向到登录页
- asp.net-mvc – 路由:如何在url中隐藏动作名称?
- asp.net – 如何更改F#Canopy UI测试脚本中的下拉列表
- asp.net:如何在button onclick上使用eventargs进行参数传递
- 获取当前ASP.NET Web Api 2操作的URL
- asp.net-mvc – UserManager.Create(用户,密码)thowing Ent
- asp.net – asp:UpdateProgress – 保留换行符
- asp.net – Visual Studio – 为什么.ASPX文件比.ASPX.CS文
- asp.net-mvc – ASP.NET MVC:无法在我的控制器中获取字符串
- asp.net-mvc – 使用BootstrapValidator与MVC Da
- asp.net – IIS 7.5几分钟后,Localhost停止解析
- asp.net – 在Azure Web App中设置EF连接字符串
- asp.net-mvc – MVC 3 RC中的Razor Helper
- asp.net – 创建新的实体数据模型的麻烦
- asp.net-mvc – 将IQueryable泛型转换为JSON
- asp.net gridview中的datetime格式
- 用Dataset对象读取XML内容来绑定下拉列表框
- 是否可以使Page.IsPostBack独立于ASP.net而变为真
- asp.net-mvc-3 – 在查询字符串中使用“popup =
