问题描述
我有一个带有用户名和密码输入的登录页面,还有一个提交按钮。我想在我的控制器中调用一个方法来检查数据是否匹配并显示结果。我如何调用该方法?我尝试了以下但它没有工作它通过这些作为参数
@using (Html.BeginForm("Logmein","LoginController",FormMethod.Post))
{
<form method="post">
<div class="input-group mt-3">
<div class="input-group-prepend">
</div>
<input type="text" class="form-control" placeholder="Username" asp-for="Userusername">
</div>
<div id="login_usernametxt" class="input-group mt-2">
<input id="login_passwordtxt" type="password" class="form-control" placeholder="Password" asp-for="Userpassword">
</div>
<button id="login_signinbtn" class="mt-3 btn bg-warning text-light" style="float: right;" formmethod="post">Sign in</button>
</form>
}
这是我的控制器。
public class LoginController : Controller
{
public LoginInfo Logininformation { get; set; }
public IActionResult Userlogin()
{
return View();
}
[HttpPost]
public IActionResult Logmein()
{
//checks if the data matches....
return RedirectToPage("/Home/Index");
}
}
解决方法
Tyr 在 Logmein() 方法中包含具有以下属性 Userusername,Userpassword 的模型
你也可以移除 html 辅助方法 (@using (Html.BeginForm("Logmein","LoginController",FormMethod.Post))) 例如:
<form method = "post" asp-controller = "Login" asp-action = "Logmein" >
<div class="input-group mt-3">
<div class="input-group-prepend">
</div>
<input type="text" class="form-control" placeholder="Username" asp-for="Userusername">
</div>
<div id="login_usernametxt" class="input-group mt-2">
<input id="login_passwordtxt" type="password" class="form-control" placeholder="Password" asp-for="Userpassword">
</div>
<input type = "submit" value = "Login" />
</form>
模型类
public class Login
{
public string Userusername { get; set; }
public string Userpassword { get; set; }
}
控制器方法:
[HttpPost]
public IActionResult Logmein(LoginModel login)
{
//checks if the data matches....
return RedirectToPage("/Home/Index");
}