Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
Asp.net mvc 角度布线与MVC布线_Asp.net Mvc_Angularjs - Fatal编程技术网

Asp.net mvc 角度布线与MVC布线

Asp.net mvc 角度布线与MVC布线,asp.net-mvc,angularjs,Asp.net Mvc,Angularjs,我正在构建一个MVC网络应用程序。有两个主要部分将用作单页应用程序。使用两种不同的MVC布局,一种用于不同的场景(一种侧面有菜单,一种全屏)。长话短说——我还有两个不同的角度模块,每个模块的范围都与正在使用的主布局相同 问题: 使用Angular-使用routeProvider,相对于Angular应用程序上下文或整个站点url,承诺引用的路径是?因此,我重新阅读了上的Angular教程,但我仍然不确定,所以我在这里发布了这个问题。 换句话说,当浏览器选择了一个url,并且该url的根目录引入了

我正在构建一个MVC网络应用程序。有两个主要部分将用作单页应用程序。使用两种不同的MVC布局,一种用于不同的场景(一种侧面有菜单,一种全屏)。长话短说——我还有两个不同的角度模块,每个模块的范围都与正在使用的主布局相同

问题: 使用Angular-使用routeProvider,相对于Angular应用程序上下文或整个站点url,承诺引用的路径是?因此,我重新阅读了上的Angular教程,但我仍然不确定,所以我在这里发布了这个问题。
换句话说,当浏览器选择了一个url,并且该url的根目录引入了一个新的Angular模块时,Angular是否将其基目录视为该新url或站点的根url?基本上,这是处理多个模块/应用程序时的路由问题

在设置第二个模块时,我让MVC控制器工作,但当我为其角度控制器设置路线时,MVC视图将显示,但不是我定义的角度视图。请参阅下面的代码片段

MVC路线是:/rating(您在浏览器地址窗口中看到的)
角度不正确路线:

var app = angular.module('ratingIndex', ['ngRoute']);

app.config(function ($routeProvider) {
    $routeProvider.when("/rating", {
        controller: "ratingController",
        templateUrl: "templates/ratingView.html"
    });

    $routeProvider.otherwise({ redirectTo: "/" });
});
var app = angular.module('ratingIndex', ['ngRoute']);

app.config(function ($routeProvider) {
    $routeProvider.when("/", {
        controller: "ratingController",
        templateUrl: "templates/ratingView.html"
    });

    $routeProvider.otherwise({ redirectTo: "/" });
});
MVC路线是:/rating(您在浏览器地址窗口中看到的)
角度正确路线:

var app = angular.module('ratingIndex', ['ngRoute']);

app.config(function ($routeProvider) {
    $routeProvider.when("/rating", {
        controller: "ratingController",
        templateUrl: "templates/ratingView.html"
    });

    $routeProvider.otherwise({ redirectTo: "/" });
});
var app = angular.module('ratingIndex', ['ngRoute']);

app.config(function ($routeProvider) {
    $routeProvider.when("/", {
        controller: "ratingController",
        templateUrl: "templates/ratingView.html"
    });

    $routeProvider.otherwise({ redirectTo: "/" });
});

这里有两种不同的情况,即服务器路由和客户端路由,这是很明显的,但是如果直接点击浏览器,我们很容易被这两种路由机制弄糊涂,您将点击服务器路由“/”或“/评级”

在客户端,默认情况下,您将在路由上获得一个#,在这种情况下,您主页的URL可能类似于

localhost/#/本地主机/#/评级

如果您计划执行重定向,请尝试使用$location.path('/rating')之类的东西,并在按钮上处理它


基本上根据您的示例,如果您想直接从浏览器点击客户端路由,请尝试使用localhost/#/如果您的站点位于子路径上,则可以改为localhost/rating

,例如/rating/您可以在中设置。并定义与此基础相关的angularJs路由否网站本身不在子路径上,但当您转到特定路径(或MVC意义上的路由)时,url将更改,例如:localhost:5555/-vs-localhost:5555/rating。这两条不同的路径也会涉及到两个不同的AngularJS模块或应用程序。因此,当选择/rating路径时,将使用不同的模块。通常,AngularJs具有哈希根,例如/#/rating。或者你正在使用HTML5模式(真的)?基本上,如果您正在导航/rating/it,请将其解释为/rating/#/->angularjs路由到“/”,而不是使用HTML5模式,但这提醒了我需要注意这一点。但是,当我向localhost/rating发出请求时,得到的url是localhost/rating#/——它所涉及的角度模块与站点的根localhost不同。是的,我认为您提到了关键区别——服务器路由与客户端路由。因此,我的直觉似乎是正确的,当我使用第二个模块时,它与服务器路径/rating有关。所以这意味着我的“有效”客户路径就是“/”,这实际上就是有效的。换句话说,任何角度路由设置或多或少都是相对于服务器路由的,或者这不是真正准确的,或者是一种错误的看待方式?我想说的是,当你点击“/”时,服务器首先运行,你会得到服务器路由,然后你会注意到到指向/#!/当你的客户端加载之后,你就可以从客户端处理路由了。好吧,但是关于我关于路由的主要问题,一般来说-角度路由是指它的起点在应用程序引入的url的根上,还是相对于网站的根?我认为是前者而不是后者。因此,当您处理两个不同的模块,并且每个模块都设置了自己的路由时,路由是相对于应用程序的根,而不是整个站点。因此,如果向/rating发出请求,这会导致引入新的/不同的应用程序(模块),则该模块的路由设置现在与新请求url相对?您将获得该特定模块的“路由”及其自己的路由,我建议你使用位置路径从一个模块移动到另一个模块,也许这篇文章适合你