模型不绑定在POST方法

我对MVC有一个非常奇怪的问题。 我的模型一直空着提交。 这可能很简单,但我找不到问题。

我的模型看起来像这样:

public class LoginModel { public string Username; public string Password; } 

我的控制器是这样的:

 [HttpGet] public ActionResult Login() { return View(); } [HttpPost] public ActionResult Login(LoginModel loginTest) { if (loginTest.Username != "x" && loginTest.Password != "y") { ModelState.AddModelError("a", "Login failed."); return View(loginTest); } else { return RedirectToAction("Home", "Welcome"); } 

}

而且这个观点也很简单。

 @model LoginSolution.Models.LoginModel @{ Layout = null; } <html> <head> <meta name="viewport" content="width=device-width" /> <title>Login</title> </head> <body> @using (Html.BeginForm("Login", "Home")) { <div> <span>Username : </span> @Html.EditorFor(model => model.Username) <br /> <span>Password : </span> @Html.EditorFor(model => model.Password) <br /> @Html.ValidationSummary() <br /> <input type="submit" value="Login" name="Login" /> </div> } </body> </html> 

这不是关于安全性或最佳实践的问题。 这只是一个问题,关于为什么模型在提交时不断返回空。

您的模型包含字段,而不是属性(无getter / setter),因此模型联编程序无法设置值。 改变你的模型

 public class LoginModel { public string Username { get; set; } public string Password { get; set; } }