将参数从aspx传递到javascript问题

时间:2011-08-12 22:59:20

标签: c# javascript asp.net

我在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”则有效。有什么想法吗?

或许你可以告诉我一个更好的方法从后面传递参数。非常感谢。

3 个答案:

答案 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 + "')'>

因此变量作为字符串传递给函数。