模型不绑定在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; } }
- 剃刀视图引擎 – 如何添加部分视图
- 禁用整个ASP.NET网站的浏览器caching
- “System.Web.Mvc.MvcWebRazorHostFactory”types的expression式不能用于返回types“System.Web.WebPages.Razor.WebRazorHostFactory”
- DataDirectory |在哪里? 界定?
- <%%>和<%=%>有什么区别?
- ASP.NET MVC ActionLink和post方法
- 为什么从Razor View接收POST请求时,我会得到null而不是空string?
- 使用参数进行ASP.NET MVC 3客户端validation
- ASP.NET MVC中如何枚举formcollection?