为什么模型绑定在我的POST操作方法中不起作用?

时间:2015-08-19 07:48:17

标签: asp.net-mvc asp.net-mvc-4 razor

我对MVC有一个非常奇怪的问题。 我的模型一直空着。 它可能非常简单,但我无法找到问题。

我的模型看起来像这样:

<a href=# onclick="alert(0);alert(1);ChangeOrder()">bla</a>

我的控制器是这样的:

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");
       }

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

1 个答案:

答案 0 :(得分:11)

您的模型包含字段,而不是属性(没有getter / setter),因此模型绑定器无法设置值。将模型更改为

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