2012-01-23 18 views
0

"MasterPageFile"プロパティの値をセッション変数の値に設定しようとしています。ここマスターページのセッション値の問題。 c#

は、私が今持っているものです。

MasterPageFile = Session["selectedLayout"]; 

は、このエラーを言って続けて:

「System.Web.UI.Page.Sessionは」「プロパティ」ですが、「メソッドのように使用されます「

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

を試みたが、このエラーを取得されています:

オブジェクト参照がオブジェクトのインスタンスに設定されていません。

+3

このコードは、そのエラーを生成してはなりません。エラーの原因となっているコードが正しいとお考えですか? –

+0

さて、私はDefault.aspx.csファイル内のPage_Preinit関数をオーバーライドしようとしています。 _defaultクラスは、Pageクラスから継承されています。 – shenn

答えて

0

ここでは愚かな質問ですが、MasterPageFileはページ内のどこにでもインスタンス化されていますか?私はそれが最初の場所であって、MasterPageFileの使用を参照して始めたのであれば、それは範囲外です。あなたはそのタイプのエラーを得るでしょう。このチェックを追加すること

+0

さて、ここでは、Default.aspx <%@ Page Language = "C#" MasterPageFile = "〜/ LayoutOne.master"の先頭にあるのですか?AutoEventWireup = "true" CodeFile = "Default.aspx.cs" Inherits = "_Default" Title = "Reviews"%> – shenn

+0

この代わりにthis.MasterPageFile = "MyTestDesign.master"を実行し、それが機能するかどうか確認してください。もしそれが事実上preinitのページレイアウトを変更するなら、私たちはキャスティングの問題を扱っているだけです。あなたは(String)Session ["Whatever"]を試して、それがトリックをするかどうかを見ることができます。また、そのオブジェクトを指し示すブレークを試して、そこに何かがあるかどうかを調べることができます。最初に何かがあるかどうかをチェックする必要があります。デフォルトではロードできない場合もあります。 –

1

試してみてください。

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