我完成了启动新的ASP.NET MVC无用户身份验证过程的过程,并且已经开始将AngularJS与C#代码集成。
我的import re
ch = "20304500"
print ":".join(re.findall('\d{2}',ch)[:-1])
# '20:30:45'
对于在Views-> Home下找到的每个观看次数使用_ViewStart.cshtml
到_Layout.cshtml
。我有两个观点,@RenderBody()
和Index.cshtml
。
在索引部分视图中,我有一个表单,其中包含一个由此AngularJS函数控制的操作:
SignUp.cshtml
我已经省略了包含任何对此问题不完全必要的额外代码,因此排除了额外的变量/工厂/服务。除了这一行,代码都有效:
.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");
会更改if语句中的内容,并且网址已从$scope.Message
更改为http://localhost:61660/
但是索引的部分视图仍然是显示。这意味着,我仍然看到http://localhost:61660/Home/SignUp
在身体中呈现而不是Index.cshtml
。如何将其更改为实际重定向?
答案 0 :(得分:5)
尝试此方法而不是$location.path("/Home/SignUp")
:
window.location.pathname = 'Home/SignUp';
这是因为角度截取$location
的重定向并通过自己的路由基础设施处理它们,阻止您的预期行为