【发布时间】:2019-11-05 11:08:22
【问题描述】:
如何将下面的动作传递给另一个动作,以便将其导出到 Excel 工作表中 ,我需要将 VL 列表传递给另一个动作
public ActionResult Details(int S)
{
SLMEntitiesDB dbContext = new SLMEntitiesDB();
var VL = (from U in dbContext.Users
join P in dbContext.Products
on U.PID equals P.PID
where P.PID == U.PID
select new UP()
{
UserO = U,
ProductO = P
}).Where(U => U.UserO.LID == S).ToList();
TempData["Exc"] = VL;
return View(VL);
}
和同一控制器中的其他操作,但它不起作用
public void ExportToExcel()
{
var V = TempData["Exc"] as List;
ExcelPackage pck = new ExcelPackage();
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Report");
ws.Cells["A1"].Value = "UserName";
int rowStart = 1;
foreach (var item in V)// here is the error
{
ws.Cells[string.Format("A{0}", rowStart)].Value = item.UserO.CN;
【问题讨论】:
-
可以使用RedirectToAction方法,将VL作为参数传递,在目标动作方法return RedirectToAction(VL)中处理请求;
-
上述方法只是在视图中查看此列表,现在我想在该视图中创建一个按钮以将列表导出到excel表中。
-
或者说,我如何从同一个类中的另一个操作访问上面的列表
-
来自您的其他so question\answer 我将更新我的答案以使用您在那里定义的模型命名空间。另外,请确保您在该问题中接受自己的答案 - 不要让问题在解决后仍然未被接受。
标签: c# entity-framework model-view-controller