【问题标题】:The name 'serializer' does not exist in the current context Master Page Error in For Java Script C# Web AppJava Script C# Web App 中的当前上下文母版页错误中不存在名称“serializer”
【发布时间】:2011-08-05 19:46:31
【问题描述】:

我已经使用 java 脚本在我的项目中成功运行,但是当我必须为此目的使用母版页和内容页时,我创建母版页并复制母版页的 head 标记和其余控件中的所有 css 和脚本在正文标签中 然后我确实复制了 asp:content1 标记中的所有 css 和脚本,而另一个 asp:content2 标记中的所有其他东西明显删除了所有表单标记 当我编译内容页面时,它给出了错误

“'serializer'在当前上下文中不存在”在源文件master中

实际上我使用这段代码实际上给出了错误,

我使用这个命名空间“使用 System.Web.Script.Serialization;” 然后在代码隐藏文件中使用此代码,

protected double[] Pvar;
protected JavaScriptSerializer serializer = new 
System.Web.Script.Serialization.JavaScriptSerializer();
Pvar[runs] = Convert.ToDouble(output.Tables[0].Rows[runs][2]);

然后为了在客户端javascript中访问这个数组,我使用这个代码,

 var Arr=<%= serializer.Serialize(Pvar)%>;

它在这一行出现错误,但请记住代码是正确的,因为它通过使用母版页和内容页同时在一个简单的 ASPX 页面上工作..

希望您的建议,

【问题讨论】:

    标签: c# javascript asp.net master-pages


    【解决方案1】:

    您从哪个页面访问serializer 对象?您不能从母版页标记中的内容代码隐藏访问受保护的变量,反之亦然。因此,请确保不是这种情况,否则您需要创建公共属性/方法并通过将内容页面中的 Master 属性(或 Master 页面中的 Page 属性)转换为更正类后面的代码来访问它们。

    【讨论】:

    • 既然序列化的输出是JSON,那引号是不是应该去掉?
    • 如果是JSON,不应该传给eval()吗?
    • @Joe,是的 - 引号不应该在那里!我正在考虑使用 JSON 字符串,然后使用一些反序列化器进行反序列化。但是这里真的不需要。
    • @All 感谢您的建议,但我只是从母版页头标签中的所有脚本和 css 和错误消失...... :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2013-06-01
    • 2010-12-17
    相关资源
    最近更新 更多