我有一个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" });
提前感谢!
发布于 2015-06-04 13:35:56
我查看了几个地方,得出结论,解决这个问题的一个选择是只从超链接调用此操作,并包含target="_self“。我仍然可以在超链接上添加一个ng单击属性,并在我的角控制器中调用代码。这并不是我想要做的,因为我想从我的角度控制器调用,而不是从超链接,但它会工作。
我使用的代码如下:
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>
}
https://stackoverflow.com/questions/30518042
复制相似问题