1

我正在使用AngularJS制作单页应用程序。对于我的后端,我使用了ASP.NET Web API和ASP.NET MVC 6的ASP.NET 5(重命名为ASP.NET Core)。AngularJS SPA提供部分视图而不是静态html文件

我想知道是否使用部分剃须刀是不好的做法从MVC控制器传递的html视图(基本上是将C#呈现为HTML的HTML文件),而不是在表示层中具有静态HTML文件。

基本上我的选择是:

  1. “经典” AngularJS SPA,所有的我的html文件是静态的,并在表示层,所有的表示逻辑在浏览器中完成。它与后端的唯一通信将是JSON中的API调用。

  2. AngularJS SPA其中没有静态html文件。相反,当进行视图调用时,会调用后端控制器,该控制器会返回呈现的局部视图 - 基本上允许您同时使用剃刀视图和角度。

第二种方法是不好的做法/有什么不好的东西,我失踪了吗?谢谢。

编辑:很容易找到一些关于如何以这种方式实现它的问题/教程,但我仍然不确定是否这样做是一种很好的做法。

回答

1

在我看来,在更动态的(服务器端)视图中使用razor语法确实不错。无论如何,视图都呈现为HTML,所以Angular可以像静态HTML文件一样解析它。 使用剃须刀的好处是可以更容易地实现服务器端验证。

特别是当你有安全需求时,但一般情况下我建议实现服务器端验证,而不是仅仅依靠客户端验证。避开它很容易,而且你不希望最终导致服务器端错误的漏洞或无效/不一致的数据。