Asp.Net结合了C#和Angular

Tom*_*adi 2 c# asp.net asp.net-mvc web-applications angularjs

我真的不知道如何结合Angular和C#。

就像我为MVC和Asp.Net提供了控制器一样,但是我也有由angular提供的控制器,那么我应该使用什么?由角度路由提供的路由还是MVC的路由?同样应该在Angular中具有ng-repeat属性,在C#中具有foreach。

我真的不知道如何在Asp.Net中结合这两种语言?有人可以向我解释最好的方法。。非常感谢!

Kie*_*Chu 7

我可以想到两种可能的实现方式

  1. AngularJSC# 完全分离应用
    • AngularJS 应用程序将是独立的应用程序,处理所有 UI 逻辑、路由逻辑、UI 模板,拥有自己的视图模型。
    • C#应用程序(我建议您使用 WebAPI/WCF 或任何您喜欢的东西)将公开 HTTP 端点供 AngularJS 应用程序调用
    • 优点可重用性(端点可以在任何地方使用,例如:原生移动应用程序)、轻量级(部署包可能只包含几个 js 文件和 html 文件)、灵活性(您可以轻松切换技术,例如例如:改用服务器端NodeJS),服务器和客户端代码可以由两个不同的团队实现,等等......
    • 缺点:需要更多时间来开发,需要丰富的知识AngularJS,有时初学者不容易调试,需要额外的努力来保护端点
  2. 混合模式
    • 您可以将任何 C# Web 技术(MVC、WebAPI、Webform)与 AngularJS 结合使用,因此 AngularJS 代码成为您的视图或视图的一部分
    • 使用这种方法,你的大部分应用逻辑仍然在 MVC 层处理,你可能会重用模型类(需要返回JsonResult它们才能与 JS 应用程序友好)
    • 优点:应用程序更多的是C#代码 => 对C#开发人员来说更容易,更容易测试(单元测试,自动化测试你的代码),更容易实现身份验证和授权逻辑(MVC为你做),开发速度更快(在我看来),等等
    • 缺点:请参阅1 的优点部分 :)。

希望能帮助到你。


Nic*_*aez 5

有2种不同的东西。您的C#控制器将在服务器上运行,而Angular控制器将在浏览器上运行。当您将C#+ Angular组合在一起时,就像构建一个单独的应用程序一样:一个运行服务器端的C#(asp.net)应用程序和一个运行客户端的JavaScript(Angular)应用程序。

C#控制器将处理http请求,而angular控制器将协调浏览器上运行的不同Angular组件的交互。

我建议您动手入门:https : //www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/build-a-single-page-application-spa -aspnet-web-api-and-angularjs