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

本文关键字:代码 调用 变量 aspx | 更新日期: 2023-09-27 18:08:41

我知道我看到过这种情况,但不记得正确的做法…基本上我在我的。cs文件中有一个名为"字符串客户端"的字符串变量。但我不能把它传递到aspx页面比如

<%=clients%>  

请纠正我,我不记得或不确定如何做到这一点。(c#新手),当我在谷歌上搜索它…目前还不清楚……或者不是很多这样的…在

"asp.net c# <%= %>结果不一致.. "也许是因为我不知道如何称呼这些…

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

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


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

UPDATE:也可以声明为protected,如下面的注释所示。

然后,在ASPX端调用:

& lt; % =客户%>

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

& lt; asp:标签runat ="服务器"文本= "客户& lt; % = %> "/>

这是无效的。这是:

& lt;div> & lt; % = %> & lt;客户/div>

在您的代码后面文件中,有一个公共变量

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>

For

<%=clients%>

工作,你需要有一个公共的或受保护的变量clients在代码后面。

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

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

首先必须确保变量的访问级别是protected或public。如果变量或属性是私有的,页面将无法访问它。

背后的代码

protected String Clients { get; set; }

Aspx

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

你需要声明你的客户端变量为公共的,例如

public string clients;

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

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

然后你可以在你的。aspx页面中这样调用它:

<%=Clients%>
c#中的

变量默认是私有的。阅读更多关于c# on MSDN中的访问修饰符和c# on MSDN中的属性

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

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

}

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

protected string Test
{
    get; set;
}

在你的标记中:

<%= this.Test %>

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