我有一个功能,可以在其中下载配置。我已经写了一个方法,它可以正常工作并满足我的要求。唯一的问题是用户无法更改文件名和指定目的地。
我尝试了SO中的多个选项,例如Stream,FileResult,ActionResult,Response,但是保存对话框根本没有出现。
以下是函数:
public void DownloadParameters()
{
var byteArray = System.Text.Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(this.GetParameters()));
var stream = new MemoryStream(byteArray);
string fileName = "tmp.file";
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/html";
response.AddHeader("content-disposition", "attachment; filename="+fileName+";");
response.BinaryWrite(byteArray);
response.Flush();
response.End();
}
还有其他方法可以实现这一目标吗?任何建议表示赞赏
答案 0 :(得分:0)
可能是由于内容类型所致。
您使用text / html的原因吗?
如果更改为更合适的内容类型,即浏览器无法原生处理的内容,则应显示“保存”对话框。
由于内容显然是json,所以更合适的名称可能是“ config.json”,内容类型应该是“ application / json”。
如果使用该选项,则会出现“保存”对话框。