【发布时间】:2012-10-01 14:12:29
【问题描述】:
尝试将值 (abc) 从代码隐藏传递到 JavaScript,但页面失败且无法加载。语法有问题吗?我注意到通常 以黄色突出显示,但在我的代码中并非如此。
<script src="../Scripts/jqModal.min.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function() { });
$("a").click(function() {
if (this.id == "optionalFeatures_Online") {
var abc = "<%=Variable_codebehind %>";
}
});
</script>
On_Load 事件背后的代码:
protected override void OnLoad(EventArgs e)
{
Variable_codebehind = "hello world";
}
来自日志文件的错误:
Web.HttpUnhandledException' 被抛出。 ---> System.Web.HttpException:无法修改 Controls 集合,因为该控件包含代码块(即 )。
【问题讨论】:
-
语法看起来没问题。您是否在任何地方声明了变量
Variable_codebehind?它必须是页面类中的protected或public成员,否则无法从标记中访问。 -
首先,
$().ready(function() { });没有意义。它需要包装你所有的javascript才能产生任何效果。此外,您还需要说出您想等待什么准备好……例如;$(document).ready(function() { // Code here }); -
如果
Variable_codebehind内容中有双引号,那你就完蛋了。 -
有什么错误。请提供更多背景信息以及您尝试解决此问题的其他方法。
-
Guff:我已将变量声明为:受保护的字符串 Variable_codebehind;
标签: c# javascript asp.net code-behind