我在asp.net后台写代码传参数,但是发现参数太长就不行了。 在后端:
folderList.InnerHtml += "<span onclick='AttachId(" + folder.Id + ")'>" + folder.DisplayName + "</span>";
在前端:
function AttachId(id) {
$("[id$='hf_FolderId']").val(id);
$("[id$='btn_Move']").click();
}
参数folder.Id="AQMkAGQ2YzBkYjkxLWZjNTYtNDAwAS1hZWY2LWQ3OWI2MDkxZTE2ZAAuAAAD82EfyZcOUkeLGnLBkE1iOgEA04D3/FOc8ES6LdlZ5/AXHgAAAQRaEQAAAA=="
如果我将其更改为“123”,它就会起作用。有什么想法吗?
或者您可以让我知道一种更好的从后向前传递参数的方法。非常感谢。
最佳答案
引号。 123
是一个数字,因此 JavaScript 可以处理它。如果您尝试 abc
,我敢打赌它也会失败。在标记中为您的字符串添加引号,它应该可以工作。
folderList.InnerHtml += "<span onclick='AttachId(\"" + folder.Id + "\")'>" + folder.DisplayName + "</span>";
使用字符串连接生成 HTML 总是容易出错。请记住,JavaScript 字符串需要像包含它的 HTML 属性一样用引号引起来。由于您对属性使用单引号,因此必须对 JavaScript 使用双引号或 html 编码的单引号。这应该有效:
"... onclick='AttachId(\"" + folder.Id + "\")'>" + ...
关于c# - 将参数从 aspx 传递到 javascript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047191/