如何返回视图以及重定向到MVC中的另一个动作[或返回视图并重新加载当前视图]?

时间:2016-08-22 13:21:45

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

我有两个动作;第一个

 public ActionResult ViewRequests()
    {
        List<AgentRequests> Reqs = con.AgentRequests
                                      .Where(x => x.Status == RequestStatus.Open)
                                      .OrderBy(x => x.RequestedOn).ToList();

        return View(Reqs);
    }

第二个:

 public ActionResult ProcessRequest(long Id)
    {

      // Code to export data to excel file

        //return RedirectToAction("ViewRequests");
        return View(KnoqedUsers);
    }

我的第一个操作返回一个包含列表的视图。该列表的每一行都有一个链接 - “处理请求”,点击该链接时会调用第二个操作。

我的第二个动作将产生一个excel文件输出以供下载。

我的问题是 - 目前处理点击的行。所以我需要从我的视角中删除它。

如果我手动重新加载页面就OK了。但是我怎样才能自动重新加载呢?

我不能使用我的第二个代码中显示的2个return语句。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

你不能。这基本上不是互联网的运作方式。互联网最重要的原则之一就是所谓的请求 - 响应。换句话说,请求获得一个响应,响应仅在请求之后。客户端向服务器发出请求,该服务器向客户端返回响应。视图(HTML)是响应,重定向也是响应。因此,您不可能只返回两个,只返回其中一个。同样,您无法返回HTML响应,然后再次返回HTML响应,而客户端不会首先重播请求。