<p>Grâce à toutes les réponses, la solution était une combinaison de toutes.</p>
<p>Premièrement, comme j’utilisais un <code>byte[]</code>, l’action du contrôleur devait être <code>FileContentResult</code> et non simplement <code>FileResult</code>. J’ai trouvé cela grâce à : <a href="https://stackoverflow.com/questions/1187261/whats-the-difference-between-the-four-file-results-in-asp-net-mvc">Quelle est la différence entre les quatre résultats File dans ASP.NET MVC</a></p>
<p>Deuxièmement, le type MIME ne devait PAS être un <code>octet-stream</code>. Apparemment, l’utilisation du flux amène le navigateur à simplement télécharger le fichier. J’ai dû changer le type en <code>application/pdf</code>. Je devrai explorer une solution plus robuste pour gérer d’autres types de fichiers/MIME.</p>
<p>Troisièmement, j’ai dû ajouter un en-tête qui change le <code>content-disposition</code> en <code>inline</code>. En utilisant <a href="https://stackoverflow.com/questions/6293893/how-to-force-pdf-files-to-open-in-browser">ce message</a>, j’ai compris que je devais modifier mon code pour éviter les en-têtes en double, puisque le content-disposition était déjà défini sur <code>attachment</code>.</p>
<p>Le code fonctionnel :</p>
<pre><code class="lang-auto">public FileContentResult GetDocument(string zipCode, string loanNumber, string classification, string fileName)
{
byte[] doc = _docService.GetDocument(zipCode, loanNumber, classification, fileName);
string mimeType = "application/pdf"
Response.AppendHeader("Content-Disposition", "inline; filename=" + fileName);
return File(doc, mimeType);
}
</code></pre>