【问题标题】:how to call a variable in code behind to aspx page如何将代码中的变量调用到aspx页面
【发布时间】:2011-09-13 18:53:29
【问题描述】:

我知道我已经看到了,但不记得这样做的正确方法......基本上我的 .cs 文件中有一个名为“字符串客户端”的字符串变量......但我无法传递它到我的aspx页面类似

<%=clients%>  

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

“asp.net c#&lt;%= %&gt;结果不一致..可能是因为我不知道怎么调用这些..

【问题讨论】:

标签: c# asp.net


【解决方案1】:

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


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

更新:也可以声明为protected,如下面的cmets所述。

然后,在 ASPX 端调用它:

请注意,如果您将它放在服务器标记属性上,这将不起作用。例如:

这是无效的。这是:

【讨论】:

  • 我如何在 .aspx 页面中调用它?
  • 添加了一些例子和一些解释。
  • 如果将双引号替换为单引号,它将起作用。
【解决方案2】:

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

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>

【讨论】:

    【解决方案3】:

    对于

    <%=clients%>
    

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

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

    【讨论】:

    • 受保护的作品同样有效,因为 aspx 标记继承了后面的代码。
    【解决方案4】:

    在浏览 ASPX 页面之前,请确保您已经编译了 *.cs 文件。

    【讨论】:

    • 这是我的问题。在从 ASPX 调用项目之前必须先构建项目,否则您将得到智能感知将其标记为不存在。
    【解决方案5】:

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

    后面的代码

    protected String Clients { get; set; }
    

    aspx

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

    【讨论】:

      【解决方案6】:

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

      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

      【讨论】:

        【解决方案7】:

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

        protected string Test
        {
            get; set;
        }
        

        在你的标记中:

        <%= this.Test %>
        

        【讨论】:

          【解决方案8】:

          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#";
                  }
              }
          }
          

          【讨论】:

            【解决方案9】:

            您可以使用数据绑定表达式&lt;%# myproperty %&gt; 访问公共/受保护的属性,如下所示:

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

            你应该调用DataBind方法,否则它不能被评估。

                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();
                    }
            

            }

            【讨论】:

              猜你喜欢
              • 2012-03-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-09-27
              • 1970-01-01
              相关资源
              最近更新 更多