我经历了启动新的 ASP.NET MVC 无用户身份验证过程的过程,并且已经开始将 AngularJS 与 C# 代码集成。
My _ViewStart.cshtml
uses _Layout.cshtml
to @RenderBody()
对于在“视图”->“主页”下找到的每个视图。我有两种看法Index.cshtml
and SignUp.cshtml
.
在 Index 部分视图中,我有一个表单,该表单具有由以下 AngularJS 函数控制的操作:
.controller('LoginController', function ($scope, $location, LoginService) {
$scope.LoginData = {
CID: '',
Email: ''
};
$scope.Login = function ($window) {
$scope.Submitted = true;
if ($scope.IsFormValid) {
LoginService.GetUser($scope.LoginData).then(function (d) {
if (d.data.CID != null) {
loginCID = d.data.CID;
loginEmail = d.data.Email;
$scope.Message = "Successfully logged in. Welcome " + d.data.CID;
$location.path("/Home/SignUp");
}
else {
alert("Invalid Creds");
}
});
}
};
})
我省略了包含对于这个问题来说并非完全必要的任何额外代码,因此额外的变量/工厂/服务已被排除。除了这一行之外,代码都有效:
$location.path("/Home/SignUp");
表格填写完毕后,$scope.Message
更改 if 语句中的内容,并且 URL 更改为http://localhost:61660/
to http://localhost:61660/Home/SignUp
但索引的部分视图仍然显示。意思是,我仍然看到Index.cshtml
被渲染在体内而不是SignUp.cshtml
。我怎样才能改变它以实际重定向?
尝试这种方法而不是$location.path("/Home/SignUp")
:
window.location.pathname = 'Home/SignUp';
这是因为角截距$location
的重定向并通过自己的路由基础设施处理它们,预防你的预期行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)