ASP.NET MVC和Angular JS引爆点

时间:2014-10-12 22:51:40

标签: asp.net-mvc angularjs asp.net-mvc-4

我想创建一个较大的ASP.NET MVC Web应用程序。在某些页面上,我想使用AngularJS。

此应用程序不是SPA。

这会成为什么问题?例如,在什么时候有效运行两个MVC范例变得头疼?

或者只要你在使用ASP.NET MVC(标准操作方法等)和使用Angular JS的内容之间有明确的界限就可以了,然后两个并排运行,而不会给你大量的代码组织/可维护性头痛?

为任何智慧欢呼。

我喜欢John Papas opinion!

安德鲁

2 个答案:

答案 0 :(得分:1)

由于您只是在征求意见,我很乐意与您分享经验。两者确实混合得很好,我认为在大多数情况下(至少我自己开发的大部分),.NET方面变得非常轻。

  • 您的.NET Web API控制器变为对数据层的简单调用,以填充模型或List(Of T)模型。这将作为JSON返回给Angular服务。
  • 从那里开始,Angular将接管所有逻辑,直到您需要执行另一个CRUD操作。操作,验证等都发生在模型中的客户端(对我来说,Angular服务充当MVVM中的模型)或角度控制器(实际上是ViewModel)。
  • 最好让你的模型(Angular服务)处理尽可能多的业务逻辑,并限制Angular控制器响应点击,输入控件等。

总而言之,让您的.NET服务器端非常轻松。只需将数据来回传输到数据层。让Angular做繁重的工作。您绝对不需要构建SPA来查看JS数据绑定库的优点,其中Angular可以说是最好的。

包含[details of what I've discussed here]的优秀博文。

祝你好运!

答案 1 :(得分:1)

我将ASP.NET MVC与AngularJS一起用于相当大的内部应用程序。除了基本的页面模板和脚本捆绑之外,我们并没有真正使用ASP.NET MVC的许多功能 - 所以客户端的所有功能都由AngularJS和客户端路由控制 - 除了我们在'模块之间做出的一些区别我们想要为每个应用程序添加不同的ng-app以及不同的脚本依赖性的应用程序。

如果您希望逐页利用AngularJS,那么我认为您完全没有问题。只要您正确引用脚本(核心AngularJS脚本和模块,控制器等的AngularJS脚本),您就可以开始使用ng-app,ng-controller等来装饰元素,它就可以正常工作。您可以使用@section声明为相关的.cshtml页面插入相关的AngularJS脚本。

如果您需要混合使用服务器端和客户端路由,这只会更复杂。然后,将仔细构建ASP.NET MVC路由以在需要时提供SPA功能。