如何从会话对象的属性获取asp.net会话参数的值

时间:2012-02-22 17:07:02

标签: asp.net

我有一个asp.net参数

<asp:SessionParameter Name="id" Type="Int32" SessionField="MySessionObject" DefaultValue="0"/>

我还有一个会话对象Session["MySessionObject]

会话对象的类型为Widget,其中包含 ID 名称属性。

有没有办法将 MySessionOjbect 中的 ID 值分配给asp.net SessionParameter,还是我必须为ID创建一个单独的会话变量?

提前致谢。

1 个答案:

答案 0 :(得分:4)

asp:SessionParameter意味着绑定到会话变量,通常用于在sql数据源查询中包含HttpSessionState变量的值。请查看此msdn及其使用的示例。

在您的示例中,您将asp:SessionParameter(您声明为Type="Int32")绑定到会话状态变量Session["MySessionObject],您说保持类型Widget对象。要将其绑定到会话状态Widget对象的 ID ,您需要为该ID创建另一个会话变量。

ASPX:

<asp:SessionParameter Name="widgetID" Type="Int32" SessionField="widgetID" DefaultValue="0"/>

代码隐藏(C#):

Widget myWidget = (Widget) Session["MySessionObject"];
Session["widgetID"] = myWidget.ID;

<强>更新
您可以尝试使用asp:Parameter来避免创建另一个会话对象:

ASPX:

<asp:Parameter Name="id" Type="Int32" DefaultValue="0"/>

代码隐藏(c#):

Widget myWidget = (Widget) Session["MySessionObject"];
sqlDataSrc.SelectParameters["id"].DefaultValue = myWidget.ID;