RedirectToAction MVC2的问题 - 无法将类型'System.Web.Mvc.RedirectToRouteResult'隐式转换为'System.Web.Mvc.ViewResult'

时间:2011-06-03 11:57:50

标签: asp.net asp.net-mvc-2 redirecttoaction

我在尝试使用RedirectToAction时收到此错误,任何人都可以提供有关为什么会发生这种情况的任何建议,我之前使用过这个没有任何问题,我一定是缺少一些东西。

无法将类型'System.Web.Mvc.RedirectToRouteResult'隐式转换为'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);

    }

此致

利安

1 个答案:

答案 0 :(得分:21)

尝试将public ViewResult Edit(Customer customer)更改为public ActionResult Edit(Customer customer)

ViewResult派生自ActionResult,只能返回Views。由于您的代码可以返回视图或重定向,因此您应该使用ActionResult。有关详细信息,请参阅this answer