我有两个动作;第一个
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语句。我怎样才能做到这一点?
答案 0 :(得分:0)
你不能。这基本上不是互联网的运作方式。互联网最重要的原则之一就是所谓的请求 - 响应。换句话说,请求获得一个响应,响应仅在请求之后。客户端向服务器发出请求,该服务器向客户端返回响应。视图(HTML)是响应,重定向也是响应。因此,您不可能只返回两个,只返回其中一个。同样,您无法返回HTML响应,然后再次返回HTML响应,而客户端不会首先重播请求。