asp.net mvc - MVC Einfache Modellbindung funktioniert nicht

Translate

Okay, das muss etwas Dummes sein, das ich falsch mache, aber ich kann es nicht finden.

MVC-Aktion:

[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult Create(BatchCreateViewModel createModel)
{
    return RedirectToRoute(MVC.Home.Display());
}

BatchCreateViewModel:

public class BatchCreateViewModel
{
    bool searchAVM;
    bool searchBPO;
    bool searchAppraisal;
    int transactionAge;
    string Description;
    string uploadfile;
}

Auf der Ansichtsseite befinden sich Steuerelemente mit den Namen "searchAVM", "searchBPO", "searchAppraisal", (Kontrollkästchen) "transactionAge" (eine Reihe von Optionsfeldern mit ganzzahligen Werten) und "description" (ein Textfeld).

Wenn ich beim Eintrag zu "Create" unterbreche, ist createModel vorhanden, hat jedoch alle Standardwerte (null für die Zeichenfolgen, false für die Booleschen Werte, 0 für die int). Wenn ich Request.Form untersuche, sind die Werte vorhanden, aber sie gelangen einfach nicht in das Modell.

Was mache ich falsch?

(Dies ist unter MVC 2, Framework 4.)

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Ihr Ansichtsmodell sollte automatische Eigenschaften haben, keine öffentlichen Variablen. Es hat mich schon mal erwischt!

So sollte es sein:

public class BatchCreateViewModel 
{ 
    public bool searchAVM {get;set;}
    public bool searchBPO {get;set;}
    public bool searchAppraisal {get;set;}
    public int transactionAge {get;set;}
    public string Description {get;set;}
    public string uploadfile {get;set;}
} 
Quelle
Über den Autor