我有一个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" });
提前致谢!
答案 0 :(得分: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>
}