我在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”则有效。有什么想法吗?
或许你可以告诉我一个更好的方法从后面传递参数。非常感谢。
答案 0 :(得分:1)
行情。 123
是一个数字,所以JavaScript很好用。如果你试试abc
,我打赌它也会失败。在标记中为字符串添加引号,它应该可以正常工作。
folderList.InnerHtml += "<span onclick='AttachId(\"" + folder.Id + "\")'>" + folder.DisplayName + "</span>";
使用字符串连接生成HTML总是容易出错。请记住,需要引用JavaScript字符串,因为它包含在HTML属性中。由于您对属性使用单引号,因此必须使用双引号或htmlencoded单引号作为JavaScript。这应该有效:
"... onclick='AttachId(\"" + folder.Id + "\")'>" + ...
答案 1 :(得分:0)
实际上,我认为问题不在于您的参数的长度,而是包含引号"
。
尝试逃避它们。
答案 2 :(得分:0)
<span onclick='AttachId(" + folder.Id + ")'>
我认为应该改为 -
<span onclick='AttachId('" + folder.Id + "')'>
因此变量作为字符串传递给函数。