我有一个asp.net参数
<asp:SessionParameter Name="id" Type="Int32" SessionField="MySessionObject" DefaultValue="0"/>
我还有一个会话对象Session["MySessionObject]
会话对象的类型为Widget
,其中包含 ID 和名称属性。
有没有办法将 MySessionOjbect 中的 ID 值分配给asp.net SessionParameter,还是我必须为ID创建一个单独的会话变量?
提前致谢。
答案 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;