Javascript 如何在MVC中下载文件并停留在当前页面
我希望当用户点击下载按钮时,我检查他的状态,如果它有效,一个视频文件开始下载,用户保持在当前页面。 视频文件被放置在另一台主机中。 为了做到这一点,在检查用户的有效性后,我将用户重定向到视频文件地址,但不知道如何将其保留在当前页面中。我已经这样做了:Javascript 如何在MVC中下载文件并停留在当前页面,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,我希望当用户点击下载按钮时,我检查他的状态,如果它有效,一个视频文件开始下载,用户保持在当前页面。 视频文件被放置在另一台主机中。 为了做到这一点,在检查用户的有效性后,我将用户重定向到视频文件地址,但不知道如何将其保留在当前页面中。我已经这样做了: public ActionResult Download(string url) { return Redirect(url); } 如何执行此操作?如果视频文件位于其他地址,而不是MVC应用程序中。只需让他们直接在JavaScript中
public ActionResult Download(string url)
{
return Redirect(url);
}
如何执行此操作?如果视频文件位于其他地址,而不是MVC应用程序中。只需让他们直接在JavaScript中访问该链接 一种方法是加入
iframe
$('body').append('<iframe src="url" />');
$('body')。追加(“”);
这将触发同一页面中的下载。要在MVC中执行此操作,您必须创建一个指向类似以下内容的操作的链接:
public ActionResult GetFile()
{
File(\*several overloads here*\);
}
因此,一旦用户单击链接,浏览器将提示用户下载文件,您可以使用my downloader()作为ajax回调,这样您就可以将url提供给一个简单的ajax调用,并使用指定的文件名保存该页面,无需重新加载页面。请注意,该标记用于有关模式的问题。因为您的问题是关于ASP.NET实现的,所以请使用标记(我在这里为您添加了标记)和/或某个特定于版本的变体。这只会触发某些文件类型的下载,而不是文档、图像、文本、mp4视频等。首先,我这样做,但它会将文件从目标主机下载到源主机,然后再下载。返回正在运行的文件将从服务器本身而不是从另一个服务器下载它@路易斯