如何将代码中的变量调用到aspx页面后面

时间:2011-09-13 18:53:29

标签: c# asp.net

我知道我已经看过这个但是无法回想起这样做的正确方法...基本上我的.cs文件中有一个名为“string clients”的字符串变量..但我无法通过它到我的aspx页面就像

<%=clients%>  

请纠正我,我不记得或不确定如何做到这一点。 (c#的新手)当我用谷歌搜索它时......目前尚不清楚..或者其中很多都没有...搜索为

“asp.net c#<%= %>结果不一致..也许是因为我不知道怎么称呼这些......

9 个答案:

答案 0 :(得分:56)

必须声明该字段public才能从ASPX标记中获得正确的可见性。在任何情况下,您都可以声明一个属性:


private string clients;
public string Clients { get { return clients; } }

更新:它也可以声明为protected,如下面的评论中所述。

然后,在ASPX端调用它:

  

&LT;%=客户%GT;

请注意,如果将其放在服务器标记属性上,则无法使用此功能。例如:

  

&lt; asp:Label runat =“server”Text =“&lt;%= Clients%&gt;” /&GT;

这是无效的。这是:

  

&LT; DIV&GT;&LT;%=客户%GT;&LT; / DIV&GT;

答案 1 :(得分:27)

在你的代码隐藏文件中,有一个公共变量

public partial class _Default : System.Web.UI.Page
{
    public string clients;

    protected void Page_Load(object sender, EventArgs e)
    {
        // your code that at one points sets the variable
        this.clients = "abc";
    }
}

现在在您的设计代码中,只需将其分配给某些内容,例如:

<div>
    <p><%= clients %></p>
</div>

甚至是javascript变量

<script type="text/javascript">

    var clients = '<%= clients %>';

</script>

答案 2 :(得分:9)

有关

<%=clients%>

要工作,您需要在代码隐藏中使用公共或受保护的变量clients

这是一篇解释它的文章: http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx

答案 3 :(得分:6)

确保在浏览ASPX页面之前编译了* .cs文件。

答案 4 :(得分:5)

首先,您必须确保变量的访问级别受到保护或公开。如果变量或属性是私有的,则页面将无法访问它。

背后的代码

protected String Clients { get; set; }

.aspx的

<span><%=Clients %> </span>

答案 5 :(得分:4)

您需要将您的客户变量声明为公共,例如

public string clients;

但你应该把它作为一个属性,例如

private string clients;
public string Clients{ get{ return clients; } set {clients = value;} }

然后你可以在你的.aspx页面中调用它:

<%=Clients%>

默认情况下,C#中的变量是私有的。详情阅读access modifiers in C# on MSDNproperties in C# on MSDN

答案 6 :(得分:2)

我会创建一个属性来访问变量,如下所示:

protected string Test
{
    get; set;
}

在你的标记中:

<%= this.Test %>

答案 7 :(得分:1)

HelloFromCsharp.aspx看起来像这样

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="HelloFromCsharp.aspx.cs" Inherits="Test.HelloFromCsharp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <p>
       <%= clients%>
    </p>
    </form>
</body>
</html>

HelloFromCsharp.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Test
{
    public partial class HelloFromCsharp : System.Web.UI.Page
    {
        public string clients;
        protected void Page_Load(object sender, EventArgs e)
        {
            clients = "Hello From C#";
        }
    }
}

答案 8 :(得分:0)

You can access a public/protected property using the data binding expression <%# myproperty %> as given below:

    <asp:Label ID="Label1" runat="server" Text="<%#CodeBehindVarPublic %>"></asp:Label>

you should call DataBind method, otherwise it can't be evaluated.

    public partial class WebForm1 : System.Web.UI.Page
    {
     public string CodeBehindVarPublic { get; set; }
      protected void Page_Load(object sender, EventArgs e)
        {
          CodeBehindVarPublic ="xyz";
       //you should call the next line  in case of using <%#CodeBehindVarPublic %>

          DataBind();
        }

}