Запустить действие контроллера MVC без представления?

у меня есть результат действия ExcelResult, который возвращает документы Microsoft Excel, основываясь на подсказке Стивена Вальтера . В основном он просто записывает поток в Response. При отладке VS 2010 (ASP.NET Dev Server) он работает нормально, но когда я запускаю его в поле IIS 6, я получаю следующую ошибку:

Представление GenerateExcel или его мастер не найдены. локации были обысканы: ~ / Просмотры / Главная / GenerateExcel.aspx ~ / Просмотры / Главная / GenerateExcel.ascx ~ / Просмотры / Shared / GenerateExcel.aspx ~ / Views / Shared / GenerateExcel.ascx

Нет связанного представления и, следовательно, нет файла, но его не должно быть. Что я делаю не так?

UPDATE

Просто возвращая void вместо ActionResult, у меня больше нет этой проблемы. Вместо того, чтобы возвращать ExcelResult, я явно вызываю его метод ExecuteResult, который записывает в выходной поток.

До

public ActionResult GenerateExcel()
{
    return this.Excel(parameters);
}

После

    public void GenerateExcel()
{
ExcelResult excelResult = this.Excel(parameters);
excelResult.ExecuteResult(null);
}

После этого у меня возникли проблемы с безопасностью при проверке подлинности NTLM, но они перестали прочь »(то есть я ожидаю, что они вернутся). Но пока все работает нормально.

16
задан DougJones 14 January 2011 в 18:31
поделиться