MVC3 - 从[NonAction] Controller事件重定向

时间:2012-03-12 07:39:25

标签: asp.net-mvc-3

假设我在[NonAction]控制器事件中,并希望重定向到主页?最简单的方法是什么?

[NonAction]
private ShoppingCartModel PrepareShoppingCartModel(ShoppingCartModel model, 
    IList<ShoppingCartItem> cart)
{
    if (cart == null)
        throw new ArgumentNullException("cart");

    if (model == null)
        throw new ArgumentNullException("model");

    if (cart.Count == 0)
        return model;

    ...bla bla bla (lots of code)     
 }

现在在第3行,如果Cart.Count if = 0,而不是返回空模型,而不是将视图显示为空,我宁愿重定向到主页。

我不能使用return RedirectToAction()导致编译器给我以下错误:

  

无法隐式转换类型'System.Web.Mvc.RedirectToRouteResult'   到'Web.Models.ShoppingCart.ShoppingCartModel'

问题:
那么退出[NonAction] Controller程序的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

返回类型应为ActionResult 应返回View(模型)而不是仅返回模型。您的代码应如下所示。

[NonAction]
private ActionResult PrepareShoppingCartModel(ShoppingCartModel model, 
    IList<ShoppingCartItem> cart)
{
    if (cart == null)
        throw new ArgumentNullException("cart");

    if (model == null)
        throw new ArgumentNullException("model");

    if (cart.Count == 0)
        return View(model);

    ...bla bla bla (lots of code)     
 }