Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;另存为;下载前的对话框_C#_Asp.net Mvc_Filestream_Filestreamresult - Fatal编程技术网

C# &引用;另存为;下载前的对话框

C# &引用;另存为;下载前的对话框,c#,asp.net-mvc,filestream,filestreamresult,C#,Asp.net Mvc,Filestream,Filestreamresult,我在控制器中有一个功能,可下载以下配置: public FileStreamResult SaveData() { var toJson = JsonConvert.SerializeObject(this.GetData()); var byteArray = System.Text.Encoding.ASCII.GetBytes(toJson); var stream = new MemoryStream(byteArray); string fileName

我在控制器中有一个功能,可下载以下配置:

public FileStreamResult SaveData()
{
    var toJson = JsonConvert.SerializeObject(this.GetData());
    var byteArray = System.Text.Encoding.ASCII.GetBytes(toJson);
    var stream = new MemoryStream(byteArray);
    string fileName = "Configuration.json";
    this.GetData().Save = false;
    return new FileStreamResult(stream, "text/html")
    {
        FileDownloadName = fName
    };
}
它工作正常,但唯一的问题是它会自动下载文件。我希望为用户提供更新名称和设置下载位置的可能性,即我希望在下载之前弹出“另存为”对话框

我查看了多个来源,但找不到适用的内容。有谁能建议,应该怎么做


提前感谢。

不同的浏览器在显示另存为对话框时表现不同。拥有任何控件的唯一方法是不向浏览器提示文件的数据类型或名称。在这些情况下,浏览器别无选择,只能要求用户输入文件名

将“text/html”替换为“application/octet stream”。这表示“这里有一堆字节,但我不知道它们代表什么”

删除
文件下载名
。如果浏览器没有名称,它将需要请求一个名称


您可能需要执行上述一项或两项操作,具体取决于您所关心的浏览器。

听起来更像是浏览器首选项设置,您无法从代码中控制它。例如,在Chrome中,我相信默认设置是自动下载,您(作为用户)可以更改设置以提示“另存为”。所以我想问题是:你在什么浏览器上试过这个?你尝试过多种浏览器吗?完全同意@musefan的观点。不久前我已经看过了,不幸的是“另存为”对话框是一个浏览器实现,您无法控制它。我还没有尝试过这个,但可能会有所帮助@穆塞凡,谢谢。我尝试通过Chrome和Mozilla,它会打开一个弹出窗口,询问是保存还是打开,但无法更改文件名