Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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
Javascript 如何在MVC中下载文件并停留在当前页面_Javascript_C#_Jquery_Asp.net Mvc - Fatal编程技术网

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视频等。首先,我这样做,但它会将文件从目标主机下载到源主机,然后再下载。返回正在运行的文件将从服务器本身而不是从另一个服务器下载它@路易斯