Asp.net mvc 3 使用ASP.NET进行服务器端验证的Ajax登录
我正在编写一个ASP.NET应用程序,它要求用户使用外部API登录到服务器。如果用户输入了无效的登录凭据,我希望他们能够使用Ajax获得即时反馈 我的看法Asp.net mvc 3 使用ASP.NET进行服务器端验证的Ajax登录,asp.net-mvc-3,Asp.net Mvc 3,我正在编写一个ASP.NET应用程序,它要求用户使用外部API登录到服务器。如果用户输入了无效的登录凭据,我希望他们能够使用Ajax获得即时反馈 我的看法 @using (Ajax.BeginForm("Login", "Login", null, new { id = "login-form" })) { <label> User Name: @Html.TextBox("userName", "", new
@using (Ajax.BeginForm("Login", "Login", null, new { id = "login-form" }))
{
<label>
User Name: @Html.TextBox("userName", "", new { @class = "input" })
</label>
<label>
Password: @Html.Password("password", "", new { @class = "input" })
</label>
<input type="submit" class="button" value="Login" />
<div id="login-validate">Invalid Login!</div>
}
有没有办法让控制器不切换视图,而是调用jQuery函数来显示错误消息?只需在else块中返回view()
。它将重新显示登录页面
if (RepoConnection.verifyAndBindConn(userName, password))
{
return Index(); // Redirect to home page, logged in as new user
}
else
{
return View(); // TODO: Don't change view
}
如果您真的希望它是ajaxy,那么您必须更改代码,使其不使用表单/提交按钮,而是通过ajax发送登录凭据,编写会话cookie,并在js代码中处理重定向。登录页面实际上是母版页上的下拉列表,因此这不是最好的方法。我想我需要研究一下其他的选择。
if (RepoConnection.verifyAndBindConn(userName, password))
{
return Index(); // Redirect to home page, logged in as new user
}
else
{
return View(); // TODO: Don't change view
}