gpt4 book ai didi

c# - 如何使用 AngularJS 在 ASP MVC 中重定向页面?

转载 作者:行者123 更新时间:2023-11-30 20:19:35 26 4
gpt4 key购买 nike

我完成了启动新的 ASP.NET MVC 无用户身份验证过程的过程,并且已经开始将 AngularJS 与 C# 代码集成。

我的 _ViewStart.cshtml 使用 _Layout.cshtml@RenderBody() 为我在 Views->Home 下找到的每个 View 。我有两个 View ,Index.cshtmlSignUp.cshtml

在 Index 部分 View 中,我有一个表单,该表单具有由这个 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/ 更改为http://localhost:61660/Home/SignUp 但是索引的部分 View 仍然显示。意思是,我仍然看到 Index.cshtml 在正文中呈现,而不是 SignUp.cshtml。我怎样才能将其更改为实际重定向?

最佳答案

试试这个方法而不是 $location.path("/Home/SignUp"):

window.location.pathname = 'Home/SignUp';

这是因为 Angular 拦截了 $location 的重定向并通过自己的路由基础设施处理它们,防止你的预期行为。

关于c# - 如何使用 AngularJS 在 ASP MVC 中重定向页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38437355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com