c# - 将参数从 aspx 传递到 javascript 问题

标签 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”,它就会起作用。有什么想法吗?

或者您可以让我知道一种更好的从后向前传递参数的方法。非常感谢。

最佳答案

引号。 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/

相关文章:

c# - 如何在 C#.net 中获取此计数查询

c# - 如何订阅依赖注入(inject)服务的事件

c# - Visual Studio 2015 : Unable to create universal application

javascript - Promise.any() 和 Promise.race() 有什么区别

asp.net - 带有用于 cookie 的 requireSSL 的 Sitecore

c# - WebBrowser 控件 onpropertychange 事件的事件处理程序 - sender 和 e 对象为 null

c# - 这会工作 MVVM 模式吗?

javascript - 抽象关系比较算法: Why evaluation order is important?

javascript - 使用 cbpFWTabs 打开特定选项卡

asp.net - ASP.NET中存储的组件(dll)引用在哪里?