Wie funktioniert die controller-Parameter empfangen, auf HttpPost Methoden?

Nehmen Sie dieses snippet aus einem controller, zum Beispiel:

public ActionResult Login()
{
    if (User.Identity.IsAuthenticated)
    {
        return RedirectToAction("Index", "Home");
    }
    else
    {
        return View();
    }
}

//
//POST: /User/Login

[HttpPost]
public ActionResult Login(LoginModel lm, string returnUrl)
{
    if (ModelState.IsValid)
    {
        if (Membership.ValidateUser(lm.UserName, lm.Password))
        {
            FormsAuthentication.SetAuthCookie(lm.UserName, lm.RememberMe);
            if (Url.IsLocalUrl(returnUrl) &&
                returnUrl.Length > 0 &&
                returnUrl.StartsWith("/") &&
                !returnUrl.StartsWith("//") &&
                !returnUrl.StartsWith("/\\"))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
        else
        {
            ModelState.AddModelError("", "Username and Password combination is incorrect");
        }
    }

    return View();
}

Meine Frage ist, mit der überladenen Methode der Login() (für die HTTP-POST), was ruft diese Methode mit dem ersten parameter als LoginModel Klasse und der zweite parameter als string? Mein Login.cshtml-Ansicht verwendet einen submit-button, so bin ich neugierig, wie diese Parameter übergeben bekommen, um die Login() Methode? Was ist, um mich zu stoppen hinzufügen eines Dritten Parameters? Und wie würde das parameter übergeben bekommen??

Ich weiß, das ist eine grundlegende Frage, ich versuche nur zu verstehen, das Verbindungsstück zwischen Views und Controllern.

InformationsquelleAutor | 2011-10-31
Schreibe einen Kommentar