none
Evitar perder informacion ingresada al hacer Post RRS feed

  • Pregunta

  • Hola

    Vengo de asp web forms y aunque tengo conocimientos de mvc pues acudo acá para saber como cuando en una vista hago post y no se cumplió una regla de negocio no perder la información ingresada por el usuario y volver a la misma vista. Algo que yo haría es en el Get de la view entonces pues tener como parámetro un model nulo y si este es diferente de nulo entonces pues muestro la info que trae el model ...

    jueves, 3 de julio de 2014 16:21

Respuestas

  • hola

    cuando en una vista hago post y no se cumplió una regla de negocio no perder la información ingresada por el usuario y volver a la misma vista

    tienes que volver a generar la entidad del modelo que defines para la view

    en asp.net tenias el viewstate que hacia esto por ti, pero ahora eres tu quien debe volver a crear el instancia del modleo para enviarla a la view y se vuelvan a asignar los datos

    si haces un post a un action diferente podrias usar

    [HttpPost]
    public ActionResult Procesar(){
    
        if(!ModelState.IsValid()){
    
            //aqui recreas el modelo
    
            return View("Index", model)
    
         }
    
    }

    en este caso si usara solo

    return View();

    estaria buscando el la view Procesar.cshtml por eso es que le indicas que view debe cargar y le pasas el model con los datos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 3 de julio de 2014 16:57

Todas las respuestas

  • hola

    cuando en una vista hago post y no se cumplió una regla de negocio no perder la información ingresada por el usuario y volver a la misma vista

    tienes que volver a generar la entidad del modelo que defines para la view

    en asp.net tenias el viewstate que hacia esto por ti, pero ahora eres tu quien debe volver a crear el instancia del modleo para enviarla a la view y se vuelvan a asignar los datos

    si haces un post a un action diferente podrias usar

    [HttpPost]
    public ActionResult Procesar(){
    
        if(!ModelState.IsValid()){
    
            //aqui recreas el modelo
    
            return View("Index", model)
    
         }
    
    }

    en este caso si usara solo

    return View();

    estaria buscando el la view Procesar.cshtml por eso es que le indicas que view debe cargar y le pasas el model con los datos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 3 de julio de 2014 16:57
  • Hola

    Excelente, entonces es: return View("LaVista", ElModelo);

    Gracias !!

    jueves, 3 de julio de 2014 17:45