gpt4 book ai didi

asp.net-mvc - 将过滤结果导出到 MVC 4 中的 Excel(无 Web 表单)

转载 作者:行者123 更新时间:2023-12-02 16:58:18 25 4
gpt4 key购买 nike

我无法将筛选结果导出到 Excel 文件。我刚刚学习 ASP.Net 和 MVC。

我已查看建议 here ,但我无法让它工作。我不太确定如何使用另一个link中提到的EditorTemplate .

目前,当我导出时,无论过滤器如何,所有数据都会被导出。如何在不使用 Web 表单的情况下将 View 上显示的内容导出到 Excel 文件?

谢谢你..

这是我的观点,Index.cshtml:

@model IEnumerable<ExportToExcel.Models.Student>

@{
ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
@Html.ActionLink("Create New", "Create")
@using (Html.BeginForm("Index","Student",FormMethod.Get))
{
<p>
Name: @Html.TextBox("NameSearch")
<input type="submit" value="Search" />
@Html.ActionLink("Export to Excel","ExportToExcel")
</p>
}
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Age)
</th>
<th>
@Html.DisplayNameFor(model => model.Marks)
</th>
<th></th>
</tr>

@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Age)
</td>
<td>
@Html.DisplayFor(modelItem => item.Marks)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.ID }) |
@Html.ActionLink("Details", "Details", new { id = item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.ID })
</td>
</tr>
}

</table>

在我的 Controller 中,我实现了以下内容:

public ActionResult Index(string nameSearch)
{
var students = from m in db.Students
select m;

if (!String.IsNullOrEmpty(nameSearch))
{
students = students.Where(n => n.Name.Contains(nameSearch));
}

return View(students);
}

public ActionResult ExportToExcel()
{
GridView gv = new GridView();

//if (!String.IsNullOrEmpty(nameSearch))
//{
// gv.DataSource = db.Students.Where(n => n.Name.Contains(nameSearch)).ToList();
//}
//else
//{
// gv.DataSource = db.Students.ToList();
//}
gv.DataSource = db.Students.ToList();
gv.DataBind();

Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=StudentList.xls");
Response.Charset = "";

StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);

gv.RenderControl(htw);

Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();

return RedirectToAction("Index");
}

最佳答案

好的,设法找到答案。原创link .

基本上,将搜索结果存储在 session 中。然后,在导出期间从 session 中检索列表。

关于asp.net-mvc - 将过滤结果导出到 MVC 4 中的 Excel(无 Web 表单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24208166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com