使用Angular创建SPA网站渲染ASP.NET Core视图是多余的吗?

时间:2017-03-15 20:17:49

标签: angular asp.net-core

我刚刚开始学习Angular 2和Typescript以创建单页应用程序,在我看来,我能够使用Angular(SPA)或ASP.NET Core视图(传统的Web应用程序),但不是两者。真的吗 ?我花了很多时间学习ASP.NET核心视图(标记助手,查看组件等等。我很乐意得到一些建议...

3 个答案:

答案 0 :(得分:2)

这取决于您要实现的目标,但在大多数情况下,您不需要在Angular 2应用程序的引擎下运行任何服务器端HTML呈现器,如ASPNET MVC。

最佳做法是将SPA保持独立,并使用服务器端技术构建API,在您的情况下是ASPNET WebApi。这样,您的SPA将完全与依赖于您的API的服务器分离。

<强>更新

目前我参与了在Azure中运行后端的项目。我们正在运行微服务/ ASPNET核心WebAPI,我们有Angular 2应用程序与我们的API交谈。我们正在使用vscode进行Angular 2开发,使用Visual Studio 2017进行.NET相关的工作。

如果你关心搜索引擎优化,就会有Angular Universal这样的东西,它已经是Angular 4 core的一部分(它将在下周发布,它将在下周发布),它正在处理服务器端渲染但是你必须setup your server才能处理这种情况。

答案 1 :(得分:0)

另外@Kuncevic回答:

不建议为Angular使用剃刀渲染页面。

Angular包含以下逻辑结构:ifforeach循环。

如果您在剃刀中执行此操作,则会破坏模型绑定,当您更新角度模型时,您的页面将不会更新。

指教

使用角度和静态角度页面+ dotnet核心作为API。

或使用Dotnet核心api + razor页面,不要使用angular。

缺点

如果您使用Angular并通过api调用动态加载您的数据,您的页面将不再被搜索引擎(如google)正确编入索引,这意味着:您将失去所有的SEO价值。

有一些修复/技术可以为您呈现包含数据的页面。但是你必须按照这些技术的方式构建/构建你的页面。

如果您需要SEO。我会建议你先研究一下!

答案 2 :(得分:-2)

Issac ...对你的问题的简短回答是 - 是的。

理论上,您实际上可以将服务器呈现的模板(很可能是您指的是Razor模板)与客户端呈现的模板(HTML5模板)混合在一起。

但是,为了安全起见,不应混合服务器/客户端呈现的模板,例如为XSS攻击引入矢量。

虽然这个问题与Angular 2.0有关,但AngularJS(1.x)security docs明确表示&#34;不要混合客户端和服务器模板&#34;。这个概念仍然适用于Angular 2.0