gpt4 book ai didi

javascript - 如何在单击时从 JavaScript 添加参数到 @Url.Action() 调用

转载 作者:数据小太阳 更新时间:2023-10-29 05:11:07 25 4
gpt4 key购买 nike

我有一个链接,单击该链接时需要使用必须通过 JavaScript 检索的某些数据调用 Controller 操作。该操作将返回一个 FileStreamResult。

我查看了@Url.Action,但我无法弄清楚如何(甚至是否)我可以传递必须通过 JS 检索的值字典内容。

然后我使用来自点击处理程序的 $.post。我遇到的问题是我不确定要成功做什么: function() 将文件流结果返回给用户。或者即使我可以。

所以任何关于如何做这样的事情的帮助都会很棒..

最佳答案

So then I went with a $.post from a click handler. The problem I'm having is that I'm not sure what to do in my success: function() to return the file stream result to the user. Or even if I can.

没错。您不能对 javascritpt 中接收到的字节做很多事情:显然您不能将它保存在客户端计算机上,也不能将它传递给客户端上的某个外部程序。所以不要调用应该使用 AJAX 返回文件的操作。对于这些操作,您应该使用普通链接:

@Html.ActionLink("download file", "download", new { id = 123 })

让用户决定如何处理文件。您可以使用 Content-Disposition header 并将其设置为 inlineattachment ,具体取决于您是否希望使用浏览器中的默认关联程序或使用“保存文件”对话框提示用户。


更新:

看来我误解了这个问题。如果您想将参数附加到现有链接,您可以在 javascript 中订阅点击事件,并通过将必要的参数附加到查询字符串来修改 href:

$(function() {
$('#mylink').click(function() {
var someValue = 'value of parameter';
$(this).attr('href', this.href + '?paramName=' + encodeURIComponent(someValue));
return true;
});
});

关于javascript - 如何在单击时从 JavaScript 添加参数到 @Url.Action() 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5332223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com