0

我在这里遇到了一个奇怪的问题:在 ASP.NET 控制器中,我这样做:

    public ActionResult ExportTex()
    {
        Response.ContentType = "text/plain";
        Response.AddHeader("Content-Disposition", "attachment;filename=\"" + Server.HtmlEncode("overview.tex") + "\"");
        return View(_model);
    }

这应该使我的浏览器(FireFox 17)打开文件下载对话框并使用相应的文件名进行下载。然而,无论我如何在 Content-Disposition 标头中命名文件(即通过 FireFox 下载时文件名为overview.tex.sdx ),文件名总是在提供的扩展名.tex之外附加扩展名“.sdx” 。

如果有人能向我解释这个额外扩展的来源,我将不胜感激。

只有 FireFox 有这种行为。Chromium 反而像一个魅力。

//编辑根据要求,这是 FireFox 获得的标题:

X-SourceFiles:=?UTF-8?[... doesn't matter I guess]?=
X-Powered-By:ASP.NET
X-AspNetMvc-Version:4.0
X-AspNet-Version:4.0.30319
Vary:Accept-Encoding
Set-Cookie:.ASPXROLES=; expires=Mon, 11-Oct-1999 22:00:00 GMT; path=/; HttpOnly
Server:Microsoft-IIS/8.0
Date:Sat, 24 Nov 2012 15:13:40 GMT
Content-Type:text/plain; charset=utf-8
Content-Length:7975
Content-Encoding:gzip
Content-Disposition:attachment;filename="overview.tex"
Cache-Control:private, s-maxage=0
4

1 回答 1

0

这确实很奇怪,因为如果内容类型是“text/plain; charset=utf-8”,Firefox 就不应该进行内容类型嗅探。

你能在多台机器上重现这个吗?什么平台?如果是 Windows,您是否安装了任何处理“sdx”的软件(搜索注册表...)。

于 2012-11-24T09:08:59.833 回答