将会话或cookie变量传递到ASP.NET中的服务器标记
本文关键字:NET 服务器 ASP 会话 cookie 变量 | 更新日期: 2023-09-27 18:26:53
这可能是一个简单的问题,但我无法回答,我在ASP.NET应用程序的另一个页面中设置了一个变量作为代码隐藏会话。假设它是:Session["UserName"]
,我想将它从代码隐藏页传递给服务器标记。服务器标签如下:
<asp:SqlDataSource ID="SqlDataSourceDelta" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionStringAlpha %>" SelectCommand="SELECT [ThingTitle], [ThingSynopsis], [ThingCategory], [ThingType], [ThingUserName] FROM [ThingOfSubmissions] WHERE ThingUsername = <%$ Session["UserName"] %>"
如上所示,我不能直接在服务器标签中使用:<%$ Session["UserName"] %>
,而不会产生关于格式错误的服务器标签的错误。所以我的问题是,如何将这个会话变量或任何其他应用程序变量(非SQL Server变量)传递到这段代码中?
您可以在服务器端代码中设置属性吗?
SqlDataSourceDelta.SelectCommand = string.Format("SELECT [ThingTitle],
[ThingSynopsis], [ThingCategory],
[ThingType], [ThingUserName]
FROM [ThingOfSubmissions]
WHERE ThingUsername = '{0}'", Session["UserName"]);
我想明白了。。。我不得不在实际页面中将该值设置为会话参数,而不是在服务器端代码中,如下所示:
<asp:SessionParameter
Name="UserName"
SessionField="UserName"
Type="String" />
接下来,我在页面服务器标记代码中使用了@UserName,它运行得很好。