0

MVC カミソリ ビュー内のセッション変数にアクセスしようとしています。セッション変数は UserID プロパティを持つ User 型で、コードは次のようになります。

<h3>@((User)Session["LoggedOnUser"]).UserID</h3>

値ではなく、プロパティの完全修飾型のみを出力します。私も次のことを試しました:

@{User loginUser = (User)Session["LoggedOnUser"];}
<h3>@loginUser.UserID</h3>

今回は動作します。これら2つの違いと、最初のものが機能しない理由を誰か教えてもらえますか?

ありがとう。

4

1 に答える 1

1

これは、Response.Write(@) コード ブロックの閉じ括弧を配置した場所が原因です。UserID プロパティではなく、User オブジェクトで Response.Write を呼び出しています。ユーザー ojbect で Response.Write を呼び出すと、ToString() メソッドが使用され、完全修飾型名が返されると思います。

以下はうまくいったでしょう:

@((User)Session["LoggedOnUser"].UserID)

閉じ括弧は、セッション ディクショナリからの戻り値の後ではなく、プロパティの後にあることに注意してください。

于 2013-01-17T20:38:37.193 に答える