将变量嵌入到另一个c#类的HTML中

时间:2012-12-28 17:58:57

标签: c# javascript asp.net html

我正在使用ASP.NET框架。在我的欢迎页面中(在用户登录后)我想自定义段落文本以包含他们的登录信息。例如:

<p>
   Welcome to the website!
</p>

代码目前是什么,但我想要的是:

<p>
       Welcome <var=Username> to the website!
</p>

现在显然这是不正确的,我没想到会这样。我只想展示我想做的事情。我想过以某种方式使用JavaScript来实现这一点,但这似乎有点过于复杂。我的变量“Username”来自其他地方的.cs文件中的另一个类。如何将该变量嵌入我的<p></p>

7 个答案:

答案 0 :(得分:4)

在标记中添加标签:

<p>
       Welcome <asp:Label ID="lblUsername" runat="server" /> to the website!
</p>

然后在后面的代码中:

protected void Page_Load(object sender, EventArgs e)
{
    lblUsername.Text = "username";  // set to the username variable here
}

答案 1 :(得分:3)

您可以使用<asp:Literal代替您的标记,然后在Page_Load中设置所需的值ltUsername.Text = UserName;

<p>Welcome <asp:Literal ID="ltUsername" runat="server" /> to the website</p>

并在您的代码中

protected void Page_Load(object sender, EventArgs e)
{
    ltUsername.Text = Username; // whatever that may be
}

文字只输出您提供的内容 - 而asp:Label会将您的文本包装在<span>标记中,并添加额外的标记,这可能会造成混淆。出于这个原因,我只对实际的asp:Label元素(与<label>相关联的元素)使用input

答案 2 :(得分:2)

如果该变量来自另一个类,您将需要一种以某种方式存储它的方法。一种方法是将其放入会话中。

所以在你的“其他”课程中

Session["myVariable"] = variable;

然后在您要将“欢迎”变量设置为“网站”的页面中,您执行以下操作:

首先,创建一个属性:

public string name {get;set;}

然后,在你的page_load中:

 protected void Page_Load(object sender, EventArgs e)
   {
          name = Session["myVariable"]
   }

然后只需将以下代码放在.aspx页面中:

 Hello <%= name %> , welcome to the website!

或者您也可以这样做:

的Page_Load:

Label1.Text = Session["myVariable"].ToString();

的.aspx:

Hello, <asp:Label ID="Label1" runat="server" /> welcome to the website.

答案 3 :(得分:1)

in Html

<p>
       Welcome <asp:Label ID="lblUserName" runat="server"></asp:Label> to the website!
</p>

然后在Page_Load <。p>中的.cs文件中

lblUserName.Text = {The User's First Name}

如果你发布了更多关于你如何进行身份验证的代码,那么我可以用实际代码替换{The Users First Name}。现在只需使用它来输入FirstName代码

答案 4 :(得分:1)

您必须使用服务器端控件,即Label,Textbox并执行:

<asp:Label id="username" runat="server" />

上述一方进入你的标记部分。

然后在您的Page_Load事件或填充.cs文件中的用户名属性的位置,您可以执行以下操作:

  username.Text = User;

答案 5 :(得分:0)

我建议您浏览一个教程网站,熟悉语法和结构。一个好的起点就在这里,http://www.w3schools.com/aspnet/default.asp(天哪,我可以想象对此的反馈;)

您要完成的任务非常简单,您也可以安装一些随Visual Studio一起提供的模板(如果有的话)......有些正是您要实现的目标。

祝你好运!

答案 6 :(得分:0)

我想说最好的方法是使用:

var page=HttpContext.Current.Handler as Page;

比:

page.Header.Controls.Add(literalcontrol);

所以你可以在一个类中使用它,而不需要在后面的每个代码上写它。