2010-09-10 15 views
7

Bueno, esto tiene que ser algo estúpido como una caja de rocas que estoy haciendo mal, pero no puedo encontrarlo. AcciónMVC El enlace de modelo simple no funciona

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

Hay controles en la página Ver llamado "searchAVM", "searchBPO", "searchAppraisal", (casillas de verificación) "transactionAge" (un conjunto de botones de radio con valores enteros) y "descripción" (un cuadro de texto)

Cuando rompo en la entrada a "Crear", createModel está ahí, pero tiene todos los valores predeterminados (nulo para el cadenas, falso para los booleanos, 0 para el int). Si examino Request.Form, los valores están ahí, pero simplemente no entran en el modelo.

¿Qué estoy haciendo mal?

(esto está bajo MVC 2, Marco 4.)

+0

También debe publicar el código de la vista, ya que podría ser un problema allí (es decir, el valor hereda). – Mayo

Respuesta

19

Su modelo de vista debe tener propiedades automáticas, no variables públicas. ¡Me atrapó antes!

lo que debe ser:

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 dije que era una caja de rocas, estúpida! Gracias, Paul. –

+0

Jaja, me alegro de no ser el único. No diré cuánto tiempo luché con eso por el momento. –

+1

Aquí es donde quiero presionar la flecha hacia arriba como 10x. Extrañaba este detalle fácil también. – atconway

Cuestiones relacionadas