Javascript方法中当前上下文中不存在名称“id”
我不能通过尝试几种方法使用在lambda表达式中传递给我的javascript方法的参数,如下所示。 如何在下面的表达式中使用id参数? 提前致谢。
FileName中有一个超链接,我成功地将ID参数传递给Javascript方法:
@p.FileName function downloadFile(id) { $.fancybox({ //This works: (p.ID == 82) content: ' p.ID == 82 ).FileData)" alt=""/>', //They are not works: (p.ID == id / p.ID == @id / p.ID == this.id) content: ' p.ID == id ).FileData)" alt=""/>', content: ' p.ID == @id ).FileData)" alt=""/>', content: ' p.ID == this.id ).FileData)" alt=""/>', type: "html" }); }
更新:这是我之前使用的Ajax方法
function downloadFile(id) { $.ajax({ url: "/Issue/RenderImage", type: "POST", data: JSON.stringify({ 'id': id }), dataType: "json", traditional: true, contentType: "application/json; charset=utf-8", success: function (response) { $.fancybox({ content: '', type: "html" //}); }, error: function () { alert("an error has occured!!!"); } }); }
如果有人告诉你不需要ajax,似乎图像数据可以发布到页面,就像字典一样,你可以改变你的代码,并把你的Model.FileAttachments
作为js的一部分,就像
var allPictures= @JsonConvert.SerializeObject(Model.FileAttachments.ToDictionary(k=>k.ID,v=>System.Convert.ToBase64String(v.FileData))); function downloadFile(id) { $.fancybox({ content: '', type: "html" }); }
并且你说你想下载其他文件类型(pdf等),它不能像图像一样,你可以使用这些代码,如果没有限制下载文件
fileName
我通过修改@Sky Fang的答案来发布代码的最终工作状态,以便有人需要使用它。 我还将title参数传递给javascript方法。
视图:
@using Newtonsoft.Json @p.FileName