【问题标题】:MasterPage session value issue. c#MasterPage 会话值问题。 C#
【发布时间】:2012-01-23 02:06:39
【问题描述】:

我正在尝试将“MasterPageFile”属性的值设置为会话变量的值。

这是我现在拥有的:

MasterPageFile = Session["selectedLayout"];

一直说这个错误:

'System.Web.UI.Page.Session' 是一个“属性”,但用作“方法”

也试过了

MasterPageFile = Session["selectedLayout"].ToString();

但一直收到此错误:

对象引用未设置为对象的实例。

【问题讨论】:

  • 该代码不应产生该错误。您确定这是导致错误的正确代码吗?
  • 是的,我正在尝试覆盖我的 Default.aspx.cs 文件中的 Page_Preinit 函数。 _default 类继承自 Page 类。

标签: c# session master-pages


【解决方案1】:

尝试添加此检查:

if (Session["selectedLayout"] != null)...

【讨论】:

    【解决方案2】:

    这里有一个愚蠢的问题,但 MasterPageFile 是否在您页面的任何地方实例化?我问是因为如果那是您引用并开始使用 MasterPageFile 的第一个地方并且它超出了范围,那么您会收到这种类型的错误,只是在这里的黑暗中开枪。

    【讨论】:

    • 是的,这是我在 Default.aspx 顶部的内容
    • 对,改为 this.MasterPageFile = "MyTestDesign.master" 看看是否可行。如果这确实改变了 preinit 中的页面布局,那么我们只是在处理一个转换问题。您可以尝试 (String)Session["Whatever"] 看看是否可以解决问题。您也可以尝试中断指向该对象并查看其中是否有任何内容。您可能需要先检查其中是否有任何内容,如果没有默认加载,祝您好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 2015-01-06
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多