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,它会打开一个弹出窗口,询问是保存还是打开,但无法更改文件名