【发布时间】:2011-01-13 19:28:54
【问题描述】:
我有一个 ExcelResult 操作结果,它根据 Stephen Walther tip 返回 Microsoft Excel 文档。基本上它只是将一个流写入响应。在调试 VS 2010 (ASP.NET Dev Server) 时,它运行良好,但是当我在 IIS 6 机器上运行它时,出现以下错误:
未找到视图“GenerateExcel”或其主视图。搜索了以下位置: ~/Views/Home/GenerateExcel.aspx ~/Views/Home/GenerateExcel.ascx ~/Views/Shared/GenerateExcel.aspx ~/Views/Shared/GenerateExcel.ascx
没有关联的视图,因此没有文件,但不应该有。我做错了什么?
更新
通过简单地返回 void 而不是 ActionResult,我不再有这个问题。我没有返回 ExcelResult,而是显式调用它的 ExecuteResult 方法,该方法正在写入输出流。
之前
public ActionResult GenerateExcel()
{
return this.Excel(parameters);
}
之后
public void GenerateExcel()
{
ExcelResult excelResult = this.Excel(parameters);
excelResult.ExecuteResult(null);
}
在那之后,我的 NTLM 身份验证出现了安全问题,但它们“消失了”(这意味着我希望它们会回来)。不过,目前一切正常。
【问题讨论】:
-
你不觉得在不展示你在做什么(一些代码什么的)的情况下说你做错了什么有点困难吗?不幸的是,我没有心灵感应技能。
-
嗯基本上可以查看链接上的代码。它返回一个 ActionResult,它实际上是一个 ExcelResult,其 ExecuteResult 方法正在写入输出流。
-
@DougJones 老问题,但只是想指出:最好以某种格式编写问题,这样人们就不必通过链接来理解问题的基本部分。问题应该足够清楚,无需链接即可理解;可以添加链接以提供额外的、深入的资源等。