将模型发送到控制器动作以导出为csv

本文关键字:csv 模型 控制器 | 更新日期: 2023-09-27 18:02:36

我有一个大的数据集,我的用户可以通过各种选项来筛选。我想将这组数据导出为CSV,但不确定如何将项目发送到我的控制器操作。

在我的索引下面的代码。cshtml文件:

@model Project.ViewModels.PeopleIndexViewModel
<a href="@Url.Action("Export", "Person", new { List = Model.People.ToList()})" title="Export to CSV">
    <img src="/content/images/excel.gif" />
</a>

结果是空的,当我点击控制器:

public ActionResult Export(List<Person> List)
{
    // List is empty here...
}

我做错了什么?

将模型发送到控制器动作以导出为csv

在我看来,这是行不通的。我建议在Session或TempData中保留List:

Session["PeopleList"] = list;

TempData["PeopleList"] = list;

这样可以在请求之间访问它。记住,会话中的存储是用于会话持续时间的。除非你使用Keep方法,否则在TempData中的存储只保留到下一个请求。