我已在生成excel文件的控制器中生成了一个动作结果,并且我通过@ url.Action帮助将其传递给按钮中的View但是当我点击按钮时它表示:
' /'中的服务器错误应用
无法找到资源。
描述:HTTP 404.您正在查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请重新注意以下网址,并确保拼写正确。
请求的网址:/ Report / PinpointReport
Controller.cs代码
public ActionResult PinpointReport(DateTime Period)
{
try
{
byte[] fileBytes = System.IO.File.ReadAllBytes("Test")
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, "test,xlsx");
}
catch(Exception ex)
{
ViewBag.ErrorMessage = "An error occurred loading the report: " + ex.Message;
string errorString = ex.ToString();
return Json(new
{
error = errorString
});
}
}
Reports.cshtml代码
这是我调用我的行动结果
的地方<input type="button" value="View Total Revenue" onclick="location.href='@Url.Action("PinpointReport", "Report")'" />
public ActionResult ExportToExcel()
{
var products = new System.Data.DataTable("test");
products.Columns.Add("col1", typeof(int));
products.Columns.Add("col2", typeof(string));
products.Rows.Add(1, "product 1");
products.Rows.Add(2, "product 2");
products.Rows.Add(3, "product 3");
products.Rows.Add(4, "product 4");
products.Rows.Add(5, "product 5");
products.Rows.Add(6, "product 6");
products.Rows.Add(7, "product 7");
var grid = new GridView();
grid.DataSource = products;
grid.DataBind();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xlsx");
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
grid.RenderControl(htw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
return View("Reports");
}
答案 0 :(得分:1)
在你的评论中,你没有在你的行动中传递DateTime参数,试试这个:
<input type="button" value="View Total Revenue"onclick="location.href='@Url.Action("PinpointReport", "Report", new { Period = 'some date' })'" />