Warum funktioniert die Modellbindung in meiner POST-Aktionsmethode nicht?

Ich habe ein wirklich seltsames Problem mit MVC. Meine Modelle werden immer wieder leer eingereicht. Und es ist wahrscheinlich wirklich einfach, aber ich kann das Problem einfach nicht finden.

Mein Modell sieht so aus:

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

Meine Steuerung gefällt das:

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

}

Und die Ansicht ist auch so einfach.

@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>

Dies ist keine Frage zu Sicherheit oder Best Practice. Dies ist nur eine Frage, warum sich das Modell beim Einreichen immer wieder als leer ausgibt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage