如果只是重定向,控制器动作应该是什么样子?

时间:2009-12-25 22:45:06

标签: .net asp.net-mvc

我有一个动作只是根据传递给它的参数执行一些数据库工作,然后重定向到另一个页面。

那么返回类型应该是什么?

2 个答案:

答案 0 :(得分:4)

使用RedirectToRouteResult重定向到同一控制器的操作:

public RedirectToRouteResult DeleteAction(long itemId)
{
    // Do stuff
    return RedirectToAction("Index");
}

或者使用此方法重定向到另一个控制器的操作:

public RedirectToRouteResult DeleteAction(long itemId)
{
    // Do stuff
    return 
      new RedirectToRouteResult(
         new RouteValueDictionary(
          new {controller = "Home", action = "Index", Id = itemId})
      );
}

答案 1 :(得分:1)

如果它总是重定向,则返回类型也可能是 RedirectToRouteResult RedirectResult ,具体取决于您是重定向到某个操作还是网址。

有关类似的讨论,请参阅this question

以下是一个例子:

public RedirectToRouteResult Foo()
{
    return this.RedirectToAction("Bar");
}