我已经在控制器中生成了一个操作结果,该控制器将生成一个excel文件,并且通过@ url.Action helper将它传递给按钮中的一个View,但是当我点击它所说的按钮:来自ActionResult的“无法找到资源”
'/'应用程序中的服务器错误。
无法找到该资源。
说明:HTTP 404.您正在查找的资源(或其某个依赖项)可能已被删除,名称已更改或暂时不可用。请回复以下URL并确保它拼写正确。
请求的URL:/报告/ 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");
}
u能告诉我们按一下按钮的代码分别üR IN UrlAction – 2015-03-13 19:09:40
调用PinpointReport“测试”是不是一个有效的文件路径。 – DLeh 2015-03-13 19:57:03
对不起,我想我把代码 - 这是我打电话给ActionResult的地方: – idreamgeek 2015-03-14 00:35:10