这可能是一个简单的问题,但是,我想,我有一个变量,我已经在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变量)传递到此代码中?
答案 0 :(得分:0)
您可以在服务器端代码中设置属性吗?
SqlDataSourceDelta.SelectCommand = string.Format("SELECT [ThingTitle],
[ThingSynopsis], [ThingCategory],
[ThingType], [ThingUserName]
FROM [ThingOfSubmissions]
WHERE ThingUsername = '{0}'", Session["UserName"]);
答案 1 :(得分:0)
我想通了......我必须在实际页面中将值设置为会话参数,而不是在服务器端代码中,如下所示:
<asp:SessionParameter
Name="UserName"
SessionField="UserName"
Type="String" />
接下来,我在页面服务器标记代码中使用了@UserName,它运行正常。