Exécuter MVC contrôleur de l'action sans la vue?

J'ai un ExcelResult action résultat qui renvoie les documents Microsoft Excel, en fonction de la Stephen Walther astuce. Fondamentalement, il écrit simplement un flux pour la Réponse. Lors du débogage de VS 2010 (ASP.NET Serveur de Dev), il fonctionne très bien, mais quand je le lance sur un IIS 6 case, j'obtiens l'erreur suivante:

La vue 'GenerateExcel" ou son maître n'a pas été trouvé. Les emplacements suivants ont été recherchés:
~/Views/Home/GenerateExcel.aspx
~/Views/Home/GenerateExcel.ascx
~/Views/Shared/GenerateExcel.aspx
~/Views/Shared/GenerateExcel.ascx

Il n'y a pas de Vue, et par conséquent pas de fichier, mais il ne devrait pas être le cas. Ce que je fais mal?

Mise à JOUR

Simplement en retournant void au lieu d'une ActionResult, je n'ai plus ce problème. Au lieu de retourner le ExcelResult, je suis en appelant explicitement c'est ExecuteResult méthode, ce qui est écrit sur le flux de sortie.

Avant

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

Après

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

Après, j'ai eu des problèmes de sécurité avec mon authentification NTLM, mais qu'ils "s'en alla" (signifie que j'attends d'eux de revenir). Pour l'instant, tout fonctionne correctement.

Ne sentez-vous pas que c'est un peu difficile de dire ce que vous faites mal, sans montrer ce que vous êtes en train de faire (un peu de code ou quelque chose)? Malheureusement je n'ai pas de compétences télépathiques.
Ainsi vous pouvez afficher le code sur le lien. C'est au retour d'une ActionResult c'est vraiment un ExcelResult dont ExecuteResult méthode est écrit sur le flux de sortie.

OriginalL'auteur DougJones | 2011-01-13