2010-09-10 11 views
7

Ok, questo deve essere qualcosa di stupido come una scatola di pietre che sto sbagliando, ma non riesco a trovarlo. AzioneMVC Il binding semplice del modello non funziona

MVC:

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

Non ci sono controlli nella pagina View denominata "searchAVM", "searchBPO", "searchAppraisal", (caselle di controllo) "transactionAge" (un insieme di pulsanti radio con valori interi) e "descrizione" (una casella di testo)

Quando si interrompe alla voce "Crea", createModel è lì, ma ha tutti i valori predefiniti (null per il stringhe, false per i booleani, 0 per l'int). Se esamino Request.Form, i valori ci sono, ma non stanno entrando nel modello.

Cosa sto sbagliando?

(questo è sotto MVC 2, Framework 4.)

+0

Si dovrebbe anche pubblicare il codice della vista, come ci potrebbe essere un problema lì (vale a dire il valore eredita). – Mayo

risposta

19

Il modello vista deve avere caratteristiche automatiche, non variabili pubbliche. Mi ha catturato prima!

quindi dovrebbe essere:

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;} 
} 
+3

D * mn! Te l'ho detto che era stupido! Grazie, Paul. –

+0

Haha, sono contento di non essere l'unico - non dirò per quanto tempo ho lottato con esso per il momento. –

+1

Qui è dove voglio premere la freccia Su come 10x. Ho perso anche questo semplice dettaglio. – atconway

Problemi correlati