将Angularjs框架与ASP.NET MVC集成的正确方法

时间:2016-05-19 18:57:04

标签: angularjs asp.net-mvc

我试图找出与ASP.NET MVC一起使用Angularjs框架的真正需要。因为我没有错,ASP.NET拥有自己的强大的路由引擎,MVC框架,它可以作为加载视图(模板)到母版页。

Angular的数据绑定功能(+1分)。

我理解并建议在AngularJS中使用WebAPI,因为在这种情况下,webAPI只提供数据而不是前端(视图)。

我看到几篇文章和博客,最重要的是关于如何使用,我也在使用,但现在我遇到了这个问题为什么?真的需要吗?

可能是我的问题达不到水平,但可以有效点。

2 个答案:

答案 0 :(得分:6)

AngularJS和ASP.NET MVC执行类似的功能。但他们以不同的方式解决这个问题。

AngularJS在客户端完成它的工作,而ASP.NET在服务器上做了很多工作。

那又怎样? 这些方法之间的差异导致实现和用户体验的一系列差异。一般来说,这里有一些Pro和Con:

AngularJS =客户端执行

赞成

  • 更灵敏的页面对用户更改的反应
  • 更容易维护状态:客户可以将内存保存在应用程序的生命周期中。

缺点

  • 初始页面加载时的加载时间较长。
  • 可能需要编写两次验证,因为您仍应在服务器端进行验证。
  • 对客户端环境的依赖性,这可能比服务器更难控制。 (例如,您的代码可能运行缓慢,因为用户的计算机速度很慢。)

ASP.NET MVC =服务器执行

赞成

  • 对每个页面加载使用众所周知的POST和GET请求。
  • 每次请求都会清除状态,这可能更容易预测(但这也是一种痛苦。)
  • 服务器环境比客户端环境更容易控制。
  • 提供更轻松的跟踪和记录行为。
  • 通常可以使用写入后端图层的相同对象和语言。

缺点

  • 需要更多网络流量,因为每个页面加载必须转到服务器并返回。最终用户通常较慢。
  • 每个页面加载都是一个完整的页面加载。当页面重新加载时,您会看到导航栏闪烁。
  • 每次请求都会清除状态。

还有许多其他差异,但这些是第一个想到的。

答案 1 :(得分:2)

我用ASP.NET MVC完成了AngularJS,事实上我通常做的是Angular + MVC + WebAPI的组合。

我的整个网页中的每个角度应用程序通常都有一个ASP.NET MVC视图。

例如。我有一个登录MVC视图,提供给浏览器,但该页面中有其他功能,如发送反馈表单,以及其他不需要MVC视图更改的用户交互功能,对于这些功能,我使用角度来发送AJAX调用,操纵DOM等。

当用户登录时,我会有另一个MVC视图,并且在该视图中有另一个angularjs应用程序,如果需要,我可以在MVC视图中有一个ng-route视图(如果需要的话)。

在另一个MVC视图中的另一个angularJS应用程序等等,你看到了......来自角度的所有AJAX调用都是由后端的WebAPI控制器接收的,而MVC控制器只是处理变化MVC观点。

如果您想在服务MVC视图之前在razor sintax中执行大量代码,或者如果您希望在前端保留角度,则取决于您的特定项目。

我的两分钱。

编辑: 我想我从来没有回答过为什么这样使用它的问题?因为它工作得很好而且它允许你灵活地在剃刀视图上的代码上沉重,或者在角度/ javascript方面沉重>>我总是这样做=)