【发布时间】:2020-09-27 19:24:05
【问题描述】:
我想知道当通常生成的文件未在文件夹中创建时如何返回 javascript 警报。运行 else 语句时,它会返回浏览器选项卡顶部的文字文本,而不是我正在寻找的警报。它看起来像这样:
代码:
public ActionResult DownloadFile(string path, string fileName)
{
if (System.IO.File.Exists(path))
{
byte[] fileBytes = System.IO.File.ReadAllBytes(path);
return File(fileBytes, "application/force-download", fileName);
}
else
{
return Content("<script language='javascript' type='text/javascript'>alert('No data was found to create a CSV file!');</script>");
}
}
【问题讨论】:
-
我不确定你应该这样做
-
Content()将 http 内容类型标头设置为“text/plain”。这就是为什么不呈现 html 的原因。请参阅docs.microsoft.com/en-us/dotnet/api/… 以返回具有正确状态代码的 html -
@ChristophLütjen 我添加了一个带有“text/javascript”的 contentType 参数,这似乎并没有改变输出。
-
以您的示例为例,您返回的是 html (text/html) 而不是 javascript。
标签: javascript c# asp.net-mvc asp.net-core