2016-11-14 85 views
0

有人可以告訴我,如果我的設置關閉。我創建了一個註冊頁面,以便當用戶點擊提交時,用戶被重定向到登錄頁面。

這裏是我的腳本:

<script type="text/javascript"> 
    app.controller('regController', function ($scope, $location, $http) { 
     $scope.submitForm = function (isValid) { 
      if (isValid) { 
       $http({ 
        method: 'POST', 
        url: '/RegModule/Account/Registration', 
        data: $scope.regData, 
        headers: { 'Content-Type': 'application/json' } 
      }).success(function (data, status, headers, config) { 
       $location.path('@Url.Action("Home/Home/Login")'); 

      }).error(function (data, status, headers, config) { 

      }) 
     } 
    } 
}) 
</script> 

這裏是我的app.config

var app = angular.module('MyApp', ["ngRoute"]) 
.config(function ($routeProvider, $locationProvider) { 
    $routeProvider 
     .when("/Login", { 
      templateUrl: "Home/Home/Login", 
      controller: 'registrationController' 
     }); 

    $locationProvider.html5Mode(true); 
}); 

我遇到的問題是$ location.path保持附加到當前URL我想要的路徑而不是重寫整個路徑。例如,我目前的網址是https://localhost/RegModule/Account/Registration。當用戶點擊提交時,我用成功方法告訴它重定向到https://localhost/Home/Home/Login。相反,我的鏈接結束爲:http://localhost/RegModule/Account/Registration#/Home/Home/Home/Home/Login

我一直在谷歌搜索過去2天,我無法弄清楚我的問題在哪裏。有人有想法嗎?也許我錯過了我應該申請的設置?我想補充一點,我在幕後使用了ASP.NET MVC 5。

回答

0

基本上你正在使用兩個路由引擎。 Asp.Net MVC有它自己的路由引擎,AngularJS有它自己的路由引擎。這兩個不能同時工作。我寧願使用一個。 我有問題在過去與此。 This可能會有用。我重新定義了遵循Angular Routes而不是MVC路線的路線。

+0

如果我得到它使用角度路線,我如何得到它調用我的mvc控制器中的mvc actionresult方法? – RiceRiceBaby

+0

routes.MapRoute( name:「Application」, url:「{* url}」, 默認值:new {controller =「Home」,action =「Index」}); 然後將沒有MVC動作路由,那麼你將只使用ng-route並相應地設置路由。 –

+0

當我將routes.MapRoute應用到我的route.config時,出現此錯誤。 HTTP錯誤404.15 - 未找到 請求過濾模塊配置爲拒絕查詢字符串過長的請求。 – RiceRiceBaby