Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Razor(asp.net)迁移到Angular JS作为模板引擎_C#_Asp.net_Angularjs_Razor - Fatal编程技术网

C# 从Razor(asp.net)迁移到Angular JS作为模板引擎

C# 从Razor(asp.net)迁移到Angular JS作为模板引擎,c#,asp.net,angularjs,razor,C#,Asp.net,Angularjs,Razor,我们使用的是ASP.NETRazor,我们大量使用Razor生成HTML,在布局中包含部分视图,等等 然而,现在Angular已经过时并且很健壮,我们希望尽可能多地使用它 一位同事建议,从理论上讲,用Angular JS完全取代Razor是可能的,我们对此进行了研究,似乎是可行的 例如,我们可以将Html.Partial替换为ngInclude,将RenderBody()替换为,将循环替换为ng repeat,等等 把剃须刀放在一边,只使用有棱角的剃须刀,有什么陷阱吗?我们错过什么了吗?我甚至不

我们使用的是ASP.NETRazor,我们大量使用Razor生成HTML,在布局中包含部分视图,等等

然而,现在Angular已经过时并且很健壮,我们希望尽可能多地使用它

一位同事建议,从理论上讲,用Angular JS完全取代Razor是可能的,我们对此进行了研究,似乎是可行的

例如,我们可以将
Html.Partial
替换为
ngInclude
,将
RenderBody()
替换为
,将循环替换为
ng repeat
,等等


把剃须刀放在一边,只使用有棱角的剃须刀,有什么陷阱吗?我们错过什么了吗?

我甚至不确定你这里有什么问题。这两个引擎本质上做相同的事情,区别在于Angular JS发生在客户端,Razor发生在服务器上。无论如何,如果呈现和逻辑不需要服务器这样做,请将动态部分转移到客户端


如果我是你,我仍然会使用Razor文件生成最终的html。将来,当服务器上必须生成内容时,您可能会发现它非常有用。也许您最终可以基于用户权限为一个完全不同的控件提供服务。这一点很重要,因为如果在客户机上进行安全敏感的呈现,则可能会有人绕过它。但是,如果由于服务器生成了该代码,因此该代码从未到达,那么您将处于一个更好的位置。

您将把所有渲染从服务器移动到客户端。最好将两者混合使用。在动态内容中使用angular。这正是我们打算在@Oliver中做的。在此阶段,性能和客户端限制对我们来说并不重要。我们只想确保不丢失任何东西。客户端生成的代码对SEO不友好,但可能有一些解决办法。@Chandermani,如果是web应用程序,SEO就不那么重要了:)好提示@MooJuice。我们会考虑的。虽然我们可以使用安全的POST检查来防止像“代码>表单欺骗>代码>这样的攻击,但最好先做一个预检查,决不要首先显示内容。@ MooJuice是完全正确的,但是考虑一下,如果你的客户端应用程序的一部分不依赖于.NET,那么你就有了HTML的纯表示层,css和javascript。所以你可以在任何你想要的地方使用它。我认为这是MooJuice回答“如果渲染和逻辑不需要服务器这样做,则将动态部分转移到客户端”的最好部分