jueves, 26 de junio de 2014

No hay constructor sin parámetros definido para este objeto

Enunciado:

Creas un modelo, una acción etiquetada httpPost y las vistas correspondientes.
Cuando realizar la primera prueba tienes el error:
No hay constructor sin parámetros definido para este objeto

Solución:

Una vez mas te has olvidado de crear un constructor sin parámetros para el modelo.

Ejemplo:

La acción
        [HttpPost()]
        public ActionResult Guardar(UsuarioEdicion datos)
        { ....
En el modelo falta el constructor marcado en rojo

Public class UsuarioEdicion
{
Public UsuarioEdicion(){}
........


martes, 17 de junio de 2014

@Html.ActionLink y ?length=n

Sintomas

En Razor escribes algo así como:
@Html.ActionLink("Texto del enlace", "Accion", "NuevoControlador", new {id=1})
Que te debia sacarte del contexto "ControladorActual" para llevarte a "NuevoControlador"
Por tanto esperas que se genere:
<a href="http://www.blogger.com/miweb/NuevoControlador/Acccion/1" >Texto del enlace</a>
Pero se genera:
<a href="http://www.blogger.com/miweb/ActualControlador/Accion?length=21" >Texto del enlace</a>

Solución:

Reemplaza por:
@Html.ActionLink("Texto del enlace", "Accion", new {Controller="NuevoControlador", id=1})
Y listo.

Comentario:

Me ha pasado tantas veces cada vez que he vuelto a usar el html.actionlink que al final lo he escrito para no olvidarme.