从jQuery调用MVC文件下载操作方法

从jQuery调用MVC文件下载操作方法,jquery,asp.net-mvc-2,action,download,Jquery,Asp.net Mvc 2,Action,Download,如果我有以下MVC操作: [AcceptVerbs(HttpVerbs.Post)] public ActionResult GetDocument(int id, string fileName) { // ..... // return File(fileStream, "text/plain", fileName); } 我想使用jQuery在单击表行时调用该操作。但是我有点困惑,因为我不想在这里调用Ajax,是吗?您不想用Ajax来实现这一点,因为响应将通过XmlHt

如果我有以下MVC操作:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult GetDocument(int id, string fileName)
{
    // ..... // 
    return File(fileStream, "text/plain", fileName);
}

我想使用jQuery在单击表行时调用该操作。但是我有点困惑,因为我不想在这里调用Ajax,是吗?

您不想用Ajax来实现这一点,因为响应将通过XmlHttpRequest提供,这在此时基本上是无用的。你将需要做一个标准的职位

您可能需要做的是,如果您需要将其作为一篇文章,请编写一份表格:

<form action="{mvc-route-here}" method="post"><input type="submit" value="Submit" /></form>

或者将其从POST更改为GET并使用标准超链接:

<a href="{mvc-route-here}">Submit</a>


…etc

您不希望使用Ajax来实现这一点,因为响应将通过XmlHttpRequest提供,这在目前基本上是无用的。你将需要做一个标准的职位

您可能需要做的是,如果您需要将其作为一篇文章,请编写一份表格:

<form action="{mvc-route-here}" method="post"><input type="submit" value="Submit" /></form>

或者将其从POST更改为GET并使用标准超链接:

<a href="{mvc-route-here}">Submit</a>


…etc

你的超链接建议给了我一个想法,我最终通过jquery进行了重定向,比如:
$table.find('tr')。单击(函数(){var docId=$(this.find('td.documentId).html();window.location.href=blah+docId;})
将用户留在同一页面上,但下载文档。您的超链接建议给了我一个想法,我最终通过jquery进行了重定向,类似于:
$table.find('tr')。单击(函数(){var docId=$(this.find('td.documentId).html();window.location.href=blah+docId;})
将用户留在同一页面上,但下载文档。