如何使用AngularJS重定向ASP MVC中的页面?

时间:2016-07-18 12:59:07

标签: c# asp.net angularjs asp.net-mvc asp.net-mvc-4

我完成了启动新的ASP.NET MVC无用户身份验证过程的过程,并且已经开始将AngularJS与C#代码集成。

我的import re ch = "20304500" print ":".join(re.findall('\d{2}',ch)[:-1]) # '20:30:45' 对于在Views-> Home下找到的每个观看次数使用_ViewStart.cshtml_Layout.cshtml。我有两个观点,@RenderBody()Index.cshtml

在索引部分视图中,我有一个表单,其中包含一个由此AngularJS函数控制的操作:

SignUp.cshtml

我已经省略了包含任何对此问题不完全必要的额外代码,因此排除了额外的变量/工厂/服务。除了这一行,代码都有效:

.controller('LoginController', function ($scope, $location, LoginService) {
    $scope.LoginData = {
        CID: '',
        Email: ''
    };

    $scope.Login = function ($window) {
        $scope.Submitted = true;
        if ($scope.IsFormValid) {
            LoginService.GetUser($scope.LoginData).then(function (d) {
                if (d.data.CID != null) {
                    loginCID = d.data.CID;
                    loginEmail = d.data.Email;
                    $scope.Message = "Successfully logged in. Welcome " + d.data.CID;
                    $location.path("/Home/SignUp");
                }
                else {
                    alert("Invalid Creds");
                }
            });
        }
    };
})

表单填写完毕后,$location.path("/Home/SignUp"); 会更改if语句中的内容,并且网址已从$scope.Message更改为http://localhost:61660/但是索引的部分视图仍然是显示。这意味着,我仍然看到http://localhost:61660/Home/SignUp在身体中呈现而不是Index.cshtml。如何将其更改为实际重定向?

1 个答案:

答案 0 :(得分:5)

尝试此方法而不是$location.path("/Home/SignUp")

window.location.pathname = 'Home/SignUp';

这是因为角度截取$location的重定向并通过自己的路由基础设施处理它们,阻止您的预期行为