Asp.Net 结合 C# 和 Angular

Asp.Net combine C# and Angular

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

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

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

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

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

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

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

  1. 分开 AngularJS & C#申请 完全
    • AngularJS 应用程序将是独立的应用程序,处理所有 UI 逻辑, 路由逻辑,UI 模板,有自己的视图模型。
    • C# 应用程序(我建议您使用 WebAPI/WCF 或您熟悉的任何东西)将 公开 HTTP 端点供 AngularJS 应用程序调用
    • PROS可重用性(端点可以在任何地方使用,例如:本机移动应用程序),light -weight(部署包可能只包含几个js文件&html文件),flexibility(你可以轻松切换技术,例如: 将服务器端切换为使用 NodeJS),服务器和客户端代码可以由两个不同的团队实现,等等...
    • 缺点:需要更多的时间来开发,需要对 AngularJS 有很强的了解,有时初学者不容易调试,需要额外的努力来保护端点
  2. 混合模式
    • 您可以将任何 C# 网络技术(MVC、WebAPI、Webform)与 AngularJS 相结合,因此 AngularJS 代码成为您的视图或视图的一部分
    • 使用此方法,您的大部分应用程序逻辑仍在 MVC 层中处理,您可以重用模型 类(需要 return 为 JsonResult 以便它们与JS 应用)
    • PROS:该应用程序更多地依赖 C# 代码 => C# 开发人员更容易,更容易测试(单元测试,自动化测试您的代码)、更容易实现身份验证和授权逻辑(MVC 为您完成)、更快地开发(在我看来)等
    • CONS:参见 PROS 部分 1 :).

希望对您有所帮助。