2012-03-25 20 views
6

Possible Duplicate:
ASP.NET MVC: No parameterless constructor defined for this objectHttpPost en ASP.Net MVC3 - "No sin parámetros constructor definido para este objeto"

Estoy trabajando en una aplicación ASP.NET MVC3.

Estoy tratando de usar el [HttpPost] para recuperar información cuando un usuario la ingresa en un formulario.

Basando lo que hago fuera de las secuencias de comandos del proyecto en blanco ASP.Net "default" de inicio de sesión, tengo los siguientes:

En mi controlador:

public ActionResult Ticket(int id) 
    { 
     Models.Ticket model = new Models.Ticket(id); 
     return View("Ticket", model); 
    } 

    [HttpPost] 
    public ActionResult Ticket(int id, MMCR.Models.Ticket model) 
    { 
     if (id != model.TicketNo) 
     { 
      return View("Error"); 
     } 
     return View("Ticket", model); 
    } 

Y en la vista que tengo:

@using (Html.BeginForm()) { 
    <div> 
    <fieldset> 
    <legend>View Ticket Details</legend> 

    <div class="editor-label"> 
     @Html.LabelFor(m=>m.Status)  
    </div> 
    <div class="editor-field"> 
     @Html.DropDownListFor(m=>m.Status, Model.Status) 
    </div> 

    <p> 
     <input type="submit" value="Update" /> 
    </p> 

    </fieldset> 
    </div> 
} 

(obviamente cortando material repetitivo).

Sin embargo, al hacer clic en el botón Me aparece un error:

Exception Details: System.MissingMethodException: No parameterless constructor defined for this object.

Puede alguien dar algunos consejos sobre cómo resolver esto?

+1

¿A qué objeto le falta el constructor sin parámetros? Si es uno de los tuyos, puedes apuñalar en la oscuridad y agregarle un constructor sin parámetros. –

+0

Ninguna de las cosas en el Stack Trace es de una de mis clases. :( – TZHX

+0

http://stackoverflow.com/q/1355464/102937 –

Respuesta

16

Su clase MMCR.Models.Ticket necesita un constructor sin parámetros.

Cuando pasa un objeto de este tipo a través del método Publicar, MVC creará una instancia de la clase utilizando un constructor sin parámetros. A continuación, asignará los campos de formulario a ese objeto.

+0

así que cualquier información en el modelo que no está en la forma se pierde en el nuevo modelo? – TZHX

+2

Eso es correcto. Si tiene información que desea conservar, debe agregarla a la vista a través de Html.HiddenFor (x => x.PropertyToKeep). se asegurará de que se rellene cuando se publique el formulario. –

+0

Pero ... Tengo que solo se muestran como etiquetas que no se transfieren.:/ – TZHX

Cuestiones relacionadas