2011-06-03 54 views
12

Recibo este error al intentar usar RedirectToAction, ¿alguien puede ofrecer algún consejo sobre por qué esto? podría estar ocurriendo, he usado esto antes sin ningún problema, me falta algo.Problemas con RedirectToAction MVC2: no se puede convertir implícitamente el tipo 'System.Web.Mvc.RedirectToRouteResult' en 'System.Web.Mvc.ViewResult'

No se puede convertir implícitamente el tipo 'System.Web.Mvc.RedirectToRouteResult' a 'System.Web.Mvc.ViewResult'

[HttpPost] 
    public ViewResult Edit(Customer customer) 
    { 
     if (ModelState.IsValid) 
     { 
      customersRepository.SaveCustomer(customer); 
      TempData["message"] = customer.CustomerName + " has been saved."; 
      return RedirectToAction("Index"); 
     } 

     else //validation error, so redisplay the same view 
      return View(customer); 

    } 

Saludos

Liam

Respuesta

19

Intente cambiar public ViewResult Edit(Customer customer) a public ActionResult Edit(Customer customer)

ViewResult se deriva de ActionResult y solo puede mostrar Vistas. Como su código puede devolver una Vista o una Redirección, debe usar un Resultado de Acción. Consulte this answer para obtener más información.

+0

gracias por eso pensé que probablemente sería algo simple. – liam

+0

¿Sabes por qué es esto? –

+0

Actualicé mi respuesta. básicamente, un 'ViewResult' solo puede devolver' View', no 'RedirectToAction' – jao

Cuestiones relacionadas