【发布时间】:2015-09-30 18:47:32
【问题描述】:
通过尝试如下所示的几种方法,我无法在 lambda 表达式中使用传递给我的 javascript 方法的参数。如何在下面的表达式中使用 id 参数?提前致谢。
FileName中有一个超链接,我将ID参数传递给Javascript方法成功:
<a onclick="downloadFile(@p.ID);">@p.FileName</a>
function downloadFile(id) {
$.fancybox({
//This works: (p.ID == 82)
content: '<img src="data:image/png;base64,@System.Convert.ToBase64String(Model.FileAttachments.FirstOrDefault(p => p.ID == 82 ).FileData)" alt=""/>',
//They are not works: (p.ID == id / p.ID == @id / p.ID == this.id)
content: '<img src="data:image/png;base64,@System.Convert.ToBase64String(Model.FileAttachments.FirstOrDefault(p => p.ID == id ).FileData)" alt=""/>',
content: '<img src="data:image/png;base64,@System.Convert.ToBase64String(Model.FileAttachments.FirstOrDefault(p => p.ID == @id ).FileData)" alt=""/>',
content: '<img src="data:image/png;base64,@System.Convert.ToBase64String(Model.FileAttachments.FirstOrDefault(p => 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: '<img height="200" width="250" src="data:image/png;base64,' + response.Image + '" />',
type: "html"
//});
},
error: function () {
alert("an error has occured!!!");
}
});
}
【问题讨论】:
-
我在这里猜测,但我假设您的值
id未设置。您的错误消息是客户端(在浏览器开发控制台中)还是服务器端?上下文是什么 - 您如何调用downloadFile()以及您的 c# 代码... FirstOrDefault(p => p.ID == @id ) ...何时以及如何生成?更多细节和代码(服务器端、生成的 html、html 页面)肯定会更容易提供帮助。 -
@threeFourOneSixOneThree 我更新了我的问题。请确保 id 参数已成功传递给 Javascript 方法(我在 Firebug 中检查过)。有什么想法吗?
-
你知道js不能直接从后面调用方法,如果要调用,需要ajax,第一个方法可以调用成功,因为你输入的id是82,是一个int数,NET可以理解
-
@SkyFang 其实一开始我用的是Ajax,但是听说“这种操作没必要用AJAX。图片是页面的单独资源,已经作为单独的请求加载了。只需链接到它:”如this 页面所示。另一方面,除了在我的javascript方法中传递id之外没有问题。所以你怎么看?我必须为此使用 Ajax 吗?如果是这样,您能否发布一个适用于图像和 excel/pdf 文件的 AJax 方法,可以通过单击我上面发布的链接打开这些文件?谢谢
-
@threeFourOneSixOneThree 为什么投反对票而不是帮助?
标签: javascript jquery asp.net-mvc lambda url-parameters