MVC5 vs Angular JS

时间:2016-09-07 08:09:36

标签: javascript asp.net angularjs asp.net-mvc asp.net-mvc-5

我已经使用ASP.NET MVC大约一年了。我喜欢使用以下工具创建SPA的能力:

  
      
  1. 部分视图(通过html.action()和renderPartial())
  2.   
  3. Ajax助手(Ajax.Actionlink()和Ajax.beginform())
  4.   

我的问题是,没有JavaScript框架就可以继续安全,或者我没有使用像Javascript framework这样的Angular JS来严重错过任何内容。

3 个答案:

答案 0 :(得分:3)

这取决于您构建的许多应用程序类型,但通常您不必在ASP.NET MVC和Angular之间进行选择,您可以在项目中使用它们。 例如,如果您有一个网格,其中用户将添加行,您必须计算总和等,您可以在该页面上使用角度(这将加快开发过程)。 但是如果你有包含静态内容的页面,你可以使用ASP.NET MVC在那里提供一个html文件。 你甚至可以使用它们。对于类似博客文章的内容,您可以使用静态html文件作为帖子内容,然后使用angular实现注释。

答案 1 :(得分:3)

由于ASP.NET是服务器端框架,因此它只能像AJAX插入一样。 Angular JS是一个客户端框架,专为SPA而设计。如果你想要一个轻量级的SPA,ASP.NET会做得很好,但我认为你应该使用正确的工具来做正确的工作。不要犹豫,将它们混合起来,以便在服务器端渲染和客户端动态之间找到合适的位置。

答案 2 :(得分:2)

你肯定错过了一些东西。

像angular这样的框架的目的不仅仅是处理你的引导标签开关或者只是显示UI的一部分而不是一切。当然,您可以通过利用这样的逻辑来创建小而简单的SPA,但是一旦您开始创建真实世界的应用程序,该方法将变得无法使用。原因是:

  • 您的网站将难以维护
  • 像angular这样的框架提供的不仅仅是模板化(稍等一些),还有路由等功能,可以按需加载内容。也就是说,您可以按需加载HTML片段,而不是将整个页面发送到客户端,而不是将其中的大部分内容发送到客户端,这样可以减少网络使用量。想象一下,你必须在Facebook上下载所有内容(帖子,图片,视频,聊天消息等)并隐藏它们直到你真正想要看到它们。

回到模板,这是一个非常强大的功能。同样,在简单应用程序的情况下,您可以使用自定义JS代码 - 即,连接字符串以创建HTML片段,然后将它们插入到DOM中。但即使使用简单的应用程序,这也是一件很臭的事情。想象一下,你必须编写自定义JS来连接像Facebook这样的应用程序中的聊天消息,然后将它们插入到DOM中。例如,使用angular2,您可以执行以下操作:

<ul>
  <li *ngFor="let msg of messages">{{msg.Sender}} said: {{msg.Content}}</li>
</ul>

这样,Angular2将为您完成所有解析和DOM处理。也就是说,您为要显示的内容编写声明性标记而不是命令式逻辑。

总而言之,它们可以帮助您将逻辑与UI分离,因此您应该深入了解任何流行的框架,并在想要创建丰富的应用程序时体验它们的功能。你不会后悔的。