微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一个链接,当点击时需要调用控制器操作与某些必须通过 JavaScript检索的数据.该操作将返回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标头并将其设置为内联或附件,具体取决于您是希望使用浏览器内的认关联程序打开文件,还是使用“保存文件”对话框提示用户.

更新:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐