【发布时间】:2020-08-14 08:38:27
【问题描述】:
我是编程新手。我正在开发一个 Web 应用程序,其中我使用了两个母版页,一个用于登录的母版页,另一个用于应用程序的其余部分。在登录页面中,如果凭据正确,则会捕获登录详细信息并将其存储在 Session 中,
Session["identity"] = txtLogin.Text;
然后用户被引导到主页。
我想将之前捕获的会话值设置到另一个母版页中的标签框,最终将在所有页面中显示用户的登录ID。当我尝试将其分配给 master.cs 页面中的标签框时,我收到错误消息,“该名称在当前上下文中不存在”。如何解决此问题。
<asp:Label ID="lblusername" class="Label" runat="server" Text=""></asp:Label>
lblusername.text = Session["identity"].ToString();
【问题讨论】:
-
或者您可以将代码放在母版页的代码隐藏中,并检查
Session["identity"] != null。 -
@AndrewMorton 我面临的问题是,即使我有带有 id-"lblusername" 的标签框,当我在后面的代码中为其赋值时,它显示名称"lblusername" 不存在当前上下文。
-
看起来在另一个母版页的代码隐藏中设置文本是要走的路。这样代码只在一个地方。如果将代码放在每个页面中,如果需要更改,必须为每个页面进行编辑会很烦人,并且在创建新页面时很容易忘记添加代码。
-
@AndrewMorton,我试过但同样的错误弹出。母版页中的标签框/文本框不能设置值吗?
-
绝对有可能。尝试将另一个具有不同 ID 的 asp:Label 添加到母版页,看看是否可以在母版页的代码隐藏中引用它,以防 lblusername 标签以某种方式损坏。
标签: c# asp.net master-pages