Dou*_*nes 16 asp.net-mvc asp.net-mvc-2
我有一个ExcelResult操作结果,根据Stephen Walther提示返回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
没有关联的View,因此没有文件,但不应该有.我究竟做错了什么?
UPDATE
通过简单地返回void而不是ActionResult,我不再有这个问题.我没有返回ExcelResult,而是明确地调用它的ExecuteResult方法,该方法正在写入输出流.
之前
public ActionResult GenerateExcel()
{
return this.Excel(parameters);
}
Run Code Online (Sandbox Code Playgroud)
后
public void GenerateExcel()
{
ExcelResult excelResult = this.Excel(parameters);
excelResult.ExecuteResult(null);
}
Run Code Online (Sandbox Code Playgroud)
在那之后,我的NTLM身份验证存在安全问题,但是他们"离开了"(意思是我希望他们回来).但就目前而言,一切正常.
Ufu*_*arı 17
确保您的action方法不返回ActionResult:
public void DoSomething()
Run Code Online (Sandbox Code Playgroud)
在我们有数百或数千个视图的情况下,这非常有用.在这种情况下,我们会创建数百或数千个控制器操作吗?当然不是,那我们怎么解决呢?
在MVC框架中,控制器类包括一个方法HandleUnknownAction(),该方法在我们尝试在不存在的控制器上调用操作(或者我们请求没有匹配操作方法的视图时)执行.

我相信,这回答了你的问题.
| 归档时间: |
|
| 查看次数: |
35245 次 |
| 最近记录: |