MVC重定向到新动作

时间:2013-11-12 13:03:33

标签: asp.net-mvc

这是我的控制器执行数据库查询并将结果返回到调用此控制器的表单:

[HttpPost]
public ActionResult Index(string File)
{
    var list = db.Objects.Where(x => x.protocol == File).ToArray();
    ViewBag.Files = list;
    //return View();
}

现在我没有将结果返回给我想要打开新表单的相同表单,所以我将其更改为:

[HttpPost]
public ActionResult Index(string File)
{
    var list = db.Objects.Where(x => x.protocol == File).ToArray();
    ViewBag.Files = list;
    return RedirectToAction("ShowList", ???);
}

创建新方法:

public ActionResult ShowList(string site)
{
    var list = db.Objects.Where(x => x.protocol == site).ToArray();
    ViewBag.Files = list;
    return View();
}

目前我不知道如何将收到的字符串发送到新方法(ShowList)

2 个答案:

答案 0 :(得分:2)

要将参数传递给您的新操作,您必须执行以下操作:

[HttpPost]
public ActionResult Index(string File)
{
    var list = db.Objects.Where(x => x.protocol == File).ToArray();
    ViewBag.Files = list;
    return RedirectToAction("ShowList", new { site = "yourparam" });
}

通过这种方式,您将把参数site传递给ShowList方法。

希望它有所帮助!

答案 1 :(得分:-1)

你可以

返回RedirectToAction(ControllerName,ActionName);

例如

返回RedirectToAction(“[ControllerName]”,“ShowList”);