Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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# 什么.NET服务器端技术可以用于AngularJS应用程序?_C#_Asp.net_Asp.net Mvc_Angularjs - Fatal编程技术网

C# 什么.NET服务器端技术可以用于AngularJS应用程序?

C# 什么.NET服务器端技术可以用于AngularJS应用程序?,c#,asp.net,asp.net-mvc,angularjs,C#,Asp.net,Asp.net Mvc,Angularjs,我正在尝试使用创建我的第一个web应用程序。我习惯于使用ASP.NETMVC4,所以我想我会在服务器端使用它,在客户端使用它。但在看了视频和做了研究之后,把这两者混为一谈似乎是错误的。原因之一是路由:Angular按自己的方式路由,ASP.NET MVC也是如此 那么,对于熟悉ASP.NET MVC的人来说,在前端可以使用什么服务器端web技术呢?我即将在Visual Studio 2013中创建一个新项目,以下是我的选择: 注:我不想讨论为什么一个选择比另一个更好;我只是想知道有什么可能。我

我正在尝试使用创建我的第一个web应用程序。我习惯于使用ASP.NETMVC4,所以我想我会在服务器端使用它,在客户端使用它。但在看了视频和做了研究之后,把这两者混为一谈似乎是错误的。原因之一是路由:Angular按自己的方式路由,ASP.NET MVC也是如此

那么,对于熟悉ASP.NET MVC的人来说,在前端可以使用什么服务器端web技术呢?我即将在Visual Studio 2013中创建一个新项目,以下是我的选择:

注:我不想讨论为什么一个选择比另一个更好;我只是想知道有什么可能。我可以从那里调查

注2:我也可以使用,也可以,但这并不能回答在服务器端使用什么的问题

编辑
在这种情况下,使用ASP.NET Web API是否有意义?请参阅。

这样做没有错。现成的Web API可以提供Angular JS使用的JSON数据

vanilla ASP.NET MVC项目为您提供基本web应用程序和身份验证。然后可以调整各个视图,以利用Angular提供的单页功能


.NET路由可以像任何其他MVC站点一样使用,其中一些路由服务于SPA页面的基础,允许您在整个web应用程序中开发多个较小的SPA。然后,您可以使用Angular的路由在迷你水疗中心的不同视图之间切换。

Angular.js是客户端框架,可以与任何后端系统一起工作,因为它与平台无关。您可以编写简单的html+WebApi,或者将角度代码都放到任何Web表单或MVC视图中,并成功地使用json(例如,但实际上可以是任何形式)使用后端服务器,这样您就可以选择您更喜欢/更了解的内容


顺便说一下,关于路线或任何其他东西,它只是解决问题的一个来源,但只有当视频中的人说这是一个很酷的功能时,你才需要使用它。只要用一些能帮你解决问题的方法,其余的留到其他时间

在我看来,您似乎在尝试制作一个单页应用程序。我理解您对路由的困惑,因此我将解释我们是如何做到这一点的

我们有一个ASP.NETMVC5项目,它也托管ASP.NETWebAPI2。我们的所有MVC5路线都由单个控制器中的单个操作处理:

routes.MapRoute("CatchAll", "{*url}",
                    new { controller = "Home", action = "Index" }
                        );
此操作返回一个视图,此视图是使AngularJS应用程序工作所需的基本HTML。此HTML在头部包含所需的CSS和JavaScript文件(框架和应用程序逻辑,如控制器、指令、服务等),在正文中包含一些基本HTML,如页眉、页脚和ng view元素,其中呈现了您映射的每条路线的视图

现在,通过ASP.NETWebAPI,我们实现了AngularJS应用程序使用的RESTWeb服务。这些web服务返回AngularJS非常理解的JSON对象,您将在JavaScript应用程序中使用它们,而不会产生任何摩擦

总之,您在浏览器中点击的任何链接,如/Home/Index、/Home/Friends、/Account/Settings等,服务器将始终返回相同的HTML,AngularJS将读取URL并执行您在应用程序中配置的适当控制器和适当视图

要了解有关单页应用程序的更多信息,请执行以下操作:

要了解有关使用AngularJS的单页应用程序的更多信息,请执行以下操作:

要了解有关REST服务的更多信息,请执行以下操作:


但这并不是故事的结尾。我说过,任何你点击的路径,服务器都会返回相同的HTML。那么为什么要使用ASP.NET MVC5呢?这个基本的HTML可以是静态文件,对吗

这个概念在搜索引擎优化方面是行不通的。搜索引擎机器人并没有执行JavaScript,所以他们希望只要点击一下你的路线(链接),就可以满足他们的所有需求。此外,Facebook不执行JavaScript,但也需要特定于用户试图共享的页面的HTML


因此,我们在服务器端创建了与AngularJS上映射的路由相同的路由,并为每个操作添加了一个过滤器。此筛选器检查是否从浏览器发出请求,并为每个操作返回相同的HTML。如果是来自Google、Bing机器人或Facebook scraper的请求,则过滤器允许执行该操作,并且该操作返回该路由的相应HTML。这个HTML非常基本,结构非常好,Google、Bind和Facebook都能理解,不包含任何CSS或JavaScript。

我的公司正在实施一个大规模的MVC/AngularJS项目,因为这是我老板根据客户的意愿提出的要求。我不知道把这两者混为一谈有什么不对。我们没有任何问题。所有Url都是使用_布局页面中的
@Url.Action()
生成的,以确保路由的更改将镜像到客户端中。我想看看那些链接。你在使用Angular的路由吗?如果是这样的话,那就意味着你没有使用MVC的控制器,对吗?你能详细介绍一下你在MVC中面临的路由问题吗?人们经常会对MVC路由产生问题,这是一种灵活/宽容的方式,而不是过于死板……我从来没有遇到过MVC路由的问题。但我以前也从未使用过Angular。Angular有自己的路由方式。我会选择ASP.NET。只需使用AngularJS SPA模板作为跳转起点:在这种情况下,您使用哪种技术进行路由选择?因此,如果您不关心搜索引擎优化,那么最好的方法是前端使用AngularJS SPA模板,后端使用ASP.NET Web API吗?是的,它们是完美的匹配。我们毫无困难地使用它们。