【发布时间】:2013-05-24 21:09:31
【问题描述】:
我刚刚将一个 ASP.NET 项目从 .NET 2.0 升级到 4.0。仍在使用 MVC 2。一些发回 .csv 文件的功能(奇怪地)被写成视图。然后,在 MainContentPlaceHolder 部分,代码丢弃了 Master 中的所有内容:
<%@ 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 下载功能之前,我正在寻找一个短期解决方案。
【问题讨论】:
标签: asp.net asp.net-mvc