让我试一试,因为我们使用的是相同的 ASP.Net MVC、WebApi 和 AngularJS 堆栈。还假设您正在创建一个 SPA。
首先,让 Web API 远离画面。它的适用性仅限于发送不同格式的数据,其中没有视图概念。
您可以同时使用服务器端路由和角度路由来为用户提供视图。它们实际上可以相互补充。
像母版页一样,angular 需要有一个主页,其中有ng-app
声明。从 MVC 的角度来看home\index.cshtml
,可以加载初始视图。为此index
页面生成的服务器大小视图可以包含ng-app
指令和ng-view
指令。
ng-view
是视图将被交换\加载的主要区域。您可以将ng-view
其@RenderBody()
与服务器端的方法进行比较。请记住在使用 Angular 时从母版页中删除@RenderBody()
调用。您不会在加载主页时删除 RenderBody。相反,应该只加载一个包含 div 的索引页面ng-view
。
您现在将为加载的每个局部视图创建服务器端视图ng-view
。例如,当客户端上的userlist.cshtml
路由更改为#/users
客户端上时,可能会加载一个视图。要从服务器加载这些视图,您需要在 中提供templateUrl
,$routeProvide
此模板 url 将由服务器路由 ( /user/index
) 解析。
创建这些子视图时要记住的事情是
- 他们不应继承任何母版页。
- 因此应该只发送需要注入该
ng-view
部分的内容,所以没有<html>, <body>
标签。
- 它们可以包含角度绑定和其他角度声明性内容。
一旦 Angular 加载了初始模板,它可能会再次调用服务器以加载模板的数据。这就是 Web API 发挥作用的地方。类似的调用/api/users
将返回有关所有用户的 json 数据。然后返回的数据可用于将视图+数据绑定在一起。
希望我已经说清楚了。