我有我的MVC應用程序一個簡單的登錄表單(注意我沒有使用內置的一個),它看起來是這樣的:與jQuery的asp.net的MVC AJAX登錄表單
@using (Html.BeginForm())
{
<label for="UserName" class="placeholder">Email address or username</label>
@Html.TextBoxFor(m => m.UserName)
<label for="Password" class="placeholder">Password</label>
@Html.PasswordFor(m => m.Password)
<button type="submit" title="Log in">Log in ►</button>
}
我有一些jQuery的應該使用ajax發佈數據。如果用戶正確,則將其發送到正確的頁面,否則會顯示錯誤。不過我很掙扎。任何人都可以指出我正確的方向,因爲目前我也可以獲得成功,即使帳戶詳細信息不正確,並且由於防止默認成功登錄,我也失去了重定向功能。
$('form').live('submit', function (event) {
// Stop the form from doing a native postback
event.preventDefault();
$.ajax({
type: 'POST',
timeout: 5000,
url: $(this).attr('action'),
data: $('form').serialize(),
success: function (responseHtml) {
// what goes here... as the form is always successful even if the account details are incorrect
},
error: function (jqXHR, textStatus, errorThrown) {
alert('error');
}
});
});
C#
[HttpGet]
public ActionResult Login()
{
if (Session["UserID"] != null)
{
return RedirectToAction("Index", "Home", new { area = "Dashboard" });
}
return View();
}
[HttpPost]
public ActionResult Login(User user, string returnUrl)
{
// Validate the email and password
if (users.Login(user.UserName, user.Password, Request.UserHostAddress))
{
FormsAuthentication.SetAuthCookie(user.UserName, true);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home", new { area = "Dashboard" });
}
}
else
{
return View();
}
}
+1這個問題沒有錯 – Jan