【问题标题】:Redirect to MVC Controller from Angular service从 Angular 服务重定向到 MVC 控制器
【发布时间】:2015-08-11 15:20:22
【问题描述】:

我有一个 MVC 应用程序,我在其中使用 MVC 控制器来处理登录和注销。当我尝试注销时,我在我的 MVC 帐户控制器上调用 LogOff 操作,该操作重定向到此控制器上的 Login 操作。我调用此代码没有问题,并且登录操作似乎运行成功。但是,这个动作的最后一行是

return View();

我可以看到我的屏幕闪烁,好像它正在绘制一个新页面。但是,我仍然可以在浏览器中看到http://localhost:60847/#/home 而不是http://localhost:60847/Account/Login

我需要在路由中添加一些内容以允许它处理 MVC 地址吗?目前,我的路由如下:

$routeProvider.when("/home", {
    //controller: "homeController",
    templateUrl: "app/layout/home.html"
});

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

提前致谢!

【问题讨论】:

    标签: asp.net-mvc angularjs angularjs-routing


    【解决方案1】:

    我在几个地方查找并得出结论,解决此问题的一个选项是仅从超链接调用此操作并包含 target="_self"。我仍然可以在超链接上添加 ng-click 属性并在我的角度控制器中调用代码。这不是我想要做的,因为我想从我的角度控制器而不是从超链接进行调用,但它会起作用。

    我使用的代码如下:

    using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" }))
    {
        @Html.AntiForgeryToken()
        <ul data-ng-controller="accountController as acctCtrl">
            <li><a data-ng-click="acctCtrl.logout()" href="javascript:document.getElementById('logoutForm').submit()" target="_self">Log off</a></li>
        </ul>
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 2015-03-12
      • 2016-10-08
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 2018-05-25
      相关资源
      最近更新 更多