2011年9月14日水曜日

アソシエーションを追加できないテーブルはビューを代用

下記のようなマスタは、アソシエーションを作成できない。

1:KBN(主キー:外部キーでない)
2:CODE(主キー:外部キー)
3:NAME
仕方ないので、KBNごとに抽出したビューを作成して代用しました。
(参照しかしないので)

ビュー
1.CODE(主キー:外部キー)
2.NAME

SelectListにSelectedValueを指定しているのに、選択表示されない

Html.DropDownList引数のSelectList。
設定したSelectListには、確かにSelectedValueが設定されているのに、選択表示されない。

デバッグしてみると、GetModelStateValueというメソッドでID名からobjectが取得できると、
選択処理のロジックに入っていなかった。
メソッドの名前から推測するに、渡しているModelのプロパティ名をIDに付けるとだめなようで、
IDを違うものに変更したら、ちゃんと選択表示された。

2011年9月9日金曜日

C#の多次元配列

JAVA出身の私。
多次元配列のnewでコンパイルエラーになるなーと思って調べていたら、
C#の場合、多次元配列は[*,*]で表現するのだとか。

×  int[][] a = new int[2][2];
○  int[,] a = new int[2,2];

知りませんでした~。

2011年9月7日水曜日

孫画面でセッションが引き継げない

調べていたら、MSのサポート情報を発見。

http://support.microsoft.com/kb/831678/ja

でも、IE7で、「親⇒子モーダル⇒孫モーダル」だけど、同じ現象。
そもそも、子モーダルからwindow.openができなかったから、
(孫画面は立ち上がらず、自画面を閉じたら、親画面にリロードされた)
showModalDialogを使ったというに。

もうちょっとあがいてみる。

2011年9月1日木曜日

HttpSessionStateBaseとHttpSessionState

MVCコントローラ内でのSessionはHttpSessionStateBase。
ASP.NET内でのSessionはHttpSessionState。

HttpSessionStateBaseを拡張したHttpSessionStateWrapperクラスを利用すれば、HttpSessionStateを扱える。

たとえばGrobal.asax内で。

HttpSessionStateBase session = new HttpSessionStateWrapper(Session);