按钮无法在 mvc 4 中触发
button cannot trigger in mvc 4
我在 ASP.NET MVC4 中遇到了一些问题 - 当我单击“登录”按钮时,它没有点击我的控制器并且没有登录
这是我的 .cshtml 中的代码
@using System.Linq
<body>
<div class="container">
@using (Html.BeginForm("Login", "Login", FormMethod.Post, new { @Class = "form-signin", enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "Login failed. Check your login details.")
<img class="img-responsive" src="~/Images/PI%20Logo.jpg" />
@Html.TextBoxFor(m => m.userName, new {@Class = "form-control", @Id = "user", @placeholder = "Username"})
@Html.ValidationMessageFor(m => m.userName)
@Html.PasswordFor(p => p.passwd, new {@Class = "form-control", @Id = "pass", @placeholder = "Password"})
@Html.ValidationMessageFor(m => m.passwd)
<!--<input class="form-control" id="username" placeholder="Username" type="text" />
<input class="form-control" id="Password1" placeholder="Password" type="password" /> -->
<input id="submit" class="btn btn-lg btn-primary btn-block" type="button" value="LOGIN" />
}
</div>
<script src="~/Scripts/jquery-1.11.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
</body>
这是我的控制器
public class LoginController : Controller
{
//
// GET: /Login/
public ActionResult Login()
{
return View();
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult Login(Login login)
{
AccountManagement am = new AccountManagement();
var xrm = new XrmServiceContext("Xrm");
SystemUser sysUser = xrm.SystemUserSet.Where(x => x.DomainName == "hc\" + login.userName && x.IsDisabled == false).FirstOrDefault();
if (am.ValidateCredentials(login.userName, login.passwd) == "True" && sysUser != null)
{
Session["username"] = login.userName;
return RedirectToAction("MainHome", "MainMenu");//Request.CreateResponse(HttpStatusCode.OK, new { Message = "Success", User = sysUser });
}
else
{
ModelState.AddModelError("", "Login data is incorrect!");//Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Username or Password Invalid");
}
return View(login);
}
}
我的代码有什么问题 - 我很困惑,因为很多教程都像这样进行了简单的登录,但它确实有效
更改按钮类型以提交
<input id="submit" class="btn btn-lg btn-primary btn-block" type="submit" value="LOGIN" />
输入类型按钮和提交之间的区别
<input type="button" />
按钮不会提交表单 - 默认情况下它们什么都不做。它们通常作为 AJAX 应用程序的一部分与 JavaScript 结合使用。
<input type="submit">
按钮将在用户单击它们时提交它们所在的表单,除非您使用 JavaScript 另行指定。
我在 ASP.NET MVC4 中遇到了一些问题 - 当我单击“登录”按钮时,它没有点击我的控制器并且没有登录
这是我的 .cshtml 中的代码
@using System.Linq
<body>
<div class="container">
@using (Html.BeginForm("Login", "Login", FormMethod.Post, new { @Class = "form-signin", enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "Login failed. Check your login details.")
<img class="img-responsive" src="~/Images/PI%20Logo.jpg" />
@Html.TextBoxFor(m => m.userName, new {@Class = "form-control", @Id = "user", @placeholder = "Username"})
@Html.ValidationMessageFor(m => m.userName)
@Html.PasswordFor(p => p.passwd, new {@Class = "form-control", @Id = "pass", @placeholder = "Password"})
@Html.ValidationMessageFor(m => m.passwd)
<!--<input class="form-control" id="username" placeholder="Username" type="text" />
<input class="form-control" id="Password1" placeholder="Password" type="password" /> -->
<input id="submit" class="btn btn-lg btn-primary btn-block" type="button" value="LOGIN" />
}
</div>
<script src="~/Scripts/jquery-1.11.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
</body>
这是我的控制器
public class LoginController : Controller
{
//
// GET: /Login/
public ActionResult Login()
{
return View();
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult Login(Login login)
{
AccountManagement am = new AccountManagement();
var xrm = new XrmServiceContext("Xrm");
SystemUser sysUser = xrm.SystemUserSet.Where(x => x.DomainName == "hc\" + login.userName && x.IsDisabled == false).FirstOrDefault();
if (am.ValidateCredentials(login.userName, login.passwd) == "True" && sysUser != null)
{
Session["username"] = login.userName;
return RedirectToAction("MainHome", "MainMenu");//Request.CreateResponse(HttpStatusCode.OK, new { Message = "Success", User = sysUser });
}
else
{
ModelState.AddModelError("", "Login data is incorrect!");//Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Username or Password Invalid");
}
return View(login);
}
}
我的代码有什么问题 - 我很困惑,因为很多教程都像这样进行了简单的登录,但它确实有效
更改按钮类型以提交
<input id="submit" class="btn btn-lg btn-primary btn-block" type="submit" value="LOGIN" />
输入类型按钮和提交之间的区别
<input type="button" />
按钮不会提交表单 - 默认情况下它们什么都不做。它们通常作为 AJAX 应用程序的一部分与 JavaScript 结合使用。
<input type="submit">
按钮将在用户单击它们时提交它们所在的表单,除非您使用 JavaScript 另行指定。