ASP.NET プロジェクトを .NET 2.0 から 4.0 にアップグレードしました。まだ MVC 2 を使用しています。.csv ファイルを送り返す一部の機能は、(奇妙なことに) ビューとして記述されていました。次に、MainContentPlaceHolder セクションで、コードはマスターからすべてのコンテンツを破棄します。
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/MyMaster" Inherits="System.Web.Mvc.ViewPage<MyViewModel>" %>
<%
HttpContext context = HttpContext.Current;
context.Response.Clear();
context.Response.Write(Html.CompletionByTemplateExport((CompletionByTemplateExport)ViewData["report"]));
context.Response.ContentType = "text/csv";
context.Response.AppendHeader("Content-Disposition", "attachment; filename=CompletionByTemplateReport.csv");
context.Response.End();
%>
.NET 4.0 へのアップグレード後、この回避策は機能しなくなります。.csv ファイルには、マスター ページによって出力されたすべての html コンテンツが含まれます。
.NET 4.0 へのアップグレードで、要求と応答の処理方法はどのように変更されましたか? response.Clear() と Response.End() が以前と同じように機能するように、古い方法で動作させる方法はありますか? .csv-downloading 機能が書き換えられるまでの短期的な解決策を探しています。