我使用MVC Razor创建了一个登录页面。该页面包含用户名和要输入的密码和两个按钮登录和注册按钮。
我已为两个文本框应用了必需的字段验证。单击“登录”按钮时,它工作正常。对于注册按钮,我希望将页面重定向到注册页面。但是当我单击SignUp按钮时,它会抛出错误,因为需要UserName和Password。
单击仅登录按钮时如何检查验证。
查看页面:
<body>
@using (Html.BeginForm("CheckLogin", "Login"))
{
<div>
<div>
<img src="@Url.Content("../../Content/Images/Logo.png")" alt="logo" style="margin-top:17px;" />@*width="184" height="171"*@
</div>
<div class="LoginBg">
<h3 class="LoginHdng">
@Html.Label("lblLogin", "Login")
</h3>
<table style="width: 745px;">
<tr>
<td>
<br />
</td>
</tr>
<tr>
<td style="font-size: 20px; text-align: right; width: 250px">
@Html.LabelFor(model => model.FirstName, "User Name: ")
</td>
<td>
@Html.TextBoxFor(model => model.FirstName, new { @class = "txtBox" })
@Html.ValidationMessageFor(model => model.FirstName)
</td>
</tr>
<tr>
<td>
<br />
</td>
</tr>
<tr>
<td style="font-size: 20px; text-align: right;">
@Html.LabelFor(model => model.Password, "Password: ")
</td>
<td>
@Html.PasswordFor(model => model.Password, new { @class = "txtBox" })
@Html.ValidationMessageFor(model => model.Password)
</td>
</tr>
<tr>
<td colspan="2" style="font-size: 16px; text-align: center; color: Red;">
<br />
@TempData["Error"]
</td>
</tr>
<tr>
<td>
<br />
</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">
<input type="submit" value="Login" name="Command" class="loginBtn" />
<input type="submit" value="SignUp" name="Command" class="loginBtn" />
</td>
</tr>
</table>
</div>
</div>
}
</body>
控制器:
[HttpPost]
public ActionResult CheckLogin(FormCollection coll)//, string command
{
if (coll["Command"] == "Login")
{
using (var db = new MVC_DBEntities())
{
if (db.tbl_UserDetails.ToList().Select(m => m.FirstName == coll["FirstName"] && m.Password == coll["Password"]).FirstOrDefault())
{
TempData["Error"] = "";
return this.RedirectToAction("Index", "Home");
}
else
{
TempData["Error"] = "Invalid UserName/Password";
return this.RedirectToAction("Login", "Login");
}
}
}
else if (coll["Command"] == "SignUp")
{
return this.RedirectToAction("SignUp", "SignUp");
}
else
{
return this.RedirectToAction("Login", "Login");
}
}
提前致谢...
答案 0 :(得分:1)
将Signup
按钮设为输入类型按钮而非输入类型提交,如下所示: -
<input type="button" value="SignUp" name="Command" class="loginBtn" id="SignUpBtn" />
并使用一些 Jquery / Javascript 转到SignUp Page
: -
$("#SignUpBtn").click(function(){
window.location.href="/SignUp/SignUp";
});
答案 1 :(得分:1)
您只需将取消类添加到不需要验证的按钮,如下所示:
<input type="submit" value="SignUp" name="Command" class="loginBtn cancel" />
如果您使用内置的jQuery不引人注目的验证,这将绕过验证。
答案 2 :(得分:0)
有几种方法。
<form action="/signup" method="get"> <input type="submit" /> </form>