2015-02-06 119 views
1

我有ASP.Net MVC5應用程序與MVC控制器和角度js控制器作爲前端。我有一個登錄頁面,在您成功登錄之後,您將直接進入主/主頁(.cshtml)。我的問題是如何使用Angular js控制器重定向到Razor頁面?成功登錄Angularjs + .Razor查看頁面後重定向到Home/main頁面?

//angularjs Code 
    $scope.Login = function() { 
    $scope.Submitted = true; 
    if ($scope.IsFormValid) { 
     LoginService.GetUser($scope.UserVM).then(function (d) { 
      if (d.data.UserName != null) { 
       $scope.IsLogedIn = true; 
       $scope.Message = "Successfully login done. Welcome " + d.data.UserName; 

      } 
      else { 
       alert('Invalid Credential!'); 
      } 

     }); 
    } 
}; 

    // _Layout.cshtml (Main Page i want to redirect to after successful Login) 
+1

window.location ='pageThatYouWantToLoad' - >這個解決方案,如果你想重定向到另一個站點(和重新加載),如果你想渲染另一個模板,你可以使用ngRoute或ui.roouter並使用它的方法來重定向和渲染另一種觀點 – szapio 2015-02-06 09:47:56

+0

@szapio,thankx很多它的作品! – TheDreamer 2015-02-09 07:38:54

回答

0

你需要做的是根據用戶是否登錄來渲染不同的部分。所以,一個可能的解決方案是利用@RenderPage

@if(!isLoggedIn) 
{ 
    @RenderPage("~/views/login.cshtml"); 
} 
else 
{ 
    <div ng-controller="mainController"> 
     .... 
    </div> 
} 

這樣,當用戶登錄後,您只需要刷新當前頁面和你的剃鬚刀的發動機會產生一個新的部分,而不是login.cshtml

+0

我試圖代碼但即時encounting以下編譯錯誤: 第79行:
80行: 線81:@if(isIsLoggedIn!)82 線:{ 線83:@RenderPage(「〜/細節。 HTML「);編譯錯誤 說明:編譯服務此請求所需的資源時發生錯誤。請查看以下具體的錯誤細節並適當修改您的源代碼。 編譯器錯誤消息:CS0103:名稱'isIsLoggedIn'在當前上下文中不存在 – TheDreamer 2015-02-10 06:42:45