- PR -

構造体変数のページ間受け渡しについて

1
投稿者投稿内容
只吉
会議室デビュー日: 2006/04/10
投稿数: 9
投稿日時: 2006-07-31 18:29
いつもお世話になっております

とあるページにて作成した構造体配列のデータを
他のページにて受け取り、グリッドに表示すると言う事をやっているのですが
用意した構造体配列をSessionに渡し
次ページで受け取るときに
[指定されたキャストは有効ではありません。]
のエラーが発生してしまいます

同じページ内での受け渡しは上手く動作しているのですが
他ページにて受け取る場合は駄目というのは何が考えられるのでしょうか?
構造体の中身にNULLが無いように全て初期化したりもしたのですが
やっぱり駄目でした

○page1と2で構造体を以下のように同じように宣言
=====================================================
<Serializable()> Private Structure TestType
Dim strA As String
Dim strB As String
Dim strC As String
End Structure

Private Test_Dat() As TestType
=====================================================

○ページ1で構造体の中身を生めてSessionに保存
Session("Test") = Test_Dat

○ページ2でSessionから構造体配列に受け渡す
Test_Dat = Session("Test") ←ここでエラー発生

VB.NET2003+WebForm
Microsoft .NET Framework 1.1
OS:Windows-XP Pro
がんふぃーるど
ベテラン
会議室デビュー日: 2006/06/05
投稿数: 58
お住まい・勤務地: さいたま
投稿日時: 2006-07-31 19:07
>○page1と2で構造体を以下のように同じように宣言
両方で宣言したら、同じ名前を持った別々の構造体とみなされるので、
キャストできません。

両方のページで定義するのではなく、どこかで一回定義するだけでいいです。
アクセス修飾子はpublic(同じアセンブリならinternalでも可能ですが、
この辺はコーディング規約等に合わせて下さい。)にすればいいです。
只吉
会議室デビュー日: 2006/04/10
投稿数: 9
投稿日時: 2006-08-01 09:55
がんふぃーるど様

メインページにて宣言し
サブページ側は呼び出すだけにして修正したら上手く引き渡せました
同じ構造でも別物扱いになるんですね・・・
有難うございました
1

スキルアップ/キャリアアップ(JOB@IT)