【发布时间】:2016-10-20 12:47:07
【问题描述】:
我的问题是我有一个登录页面,很简单,我正在获取用户名和密码。我在服务器端控制它。我正在使用 javascript 将数据视图传递给控制器。但问题是它总是将我发送到同一页面。我总是输入用户名和密码,但即使数据正确,也没有重定向。
我的查看代码,
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Yelken Otel Rezervasyon Kontrol Sistemi</title>
<script type="text/javascript">
function Login() {
var userName = document.getElementById("userName").value;
var password = document.getElementById("password").value;
$.ajax({
type: 'POST',
url: '/RezervasyonTalepleri/Giris',
dataType: 'json',
data: {
'userName': userName,
'password': password
},
success: function (msg) {
location.href = '/RezervasyonTalepleri/Denetim';
}
});
};
</script>
</head>
<body>
<div class="login-page">
<div class="form">
<form class="login-form">
<input id="userName" type="text" placeholder="username" />
<input id="password" type="password" placeholder="password" />
<button id="btnLogin" onclick="Login()" >login</button>
</form>
</div>
</div>
</body>
</html>
我的控制器代码,
[HttpGet]
public ActionResult Giris()
{
return View();
}
[HttpPost]
public ActionResult Giris(string userName, string password)
{
if(userName=="admin" && password == "123")
{
return Json(new { status = "success" });
}
else
{
return JavaScript("Yanlış Kullanıcı Adı veya Şifre Girdiniz.");
}
}
我希望当我输入正确的用户名和密码时,它应该将我重定向到/RezervasyonTalepleri/Denetim,但它总是将我重定向到/RezervasyonTalepleri/Giris。
【问题讨论】:
-
您可能没有正确登录,或者您需要删除 cookie。首先尝试使用浏览器手动清除 IE 历史记录。如果这不起作用,我建议使用 fiddler 来捕获结果以进行调试。如果您可以使用 IE 登录,则比较 IE 和您的应用程序之间的提琴手结果。通常问题在于第一条请求消息中的 HTTP 标头。
-
ajax 的全部目的是保持在同一页面上,因此进行 ajax 调用然后重定向是没有意义的。只需在 POST 方法中进行正常提交和重定向即可。
标签: javascript c# html asp.net-mvc view