簡體   English   中英

如何將代碼中的變量調用到aspx頁面后面

[英]how to call a variable in code behind to aspx page

我知道我已經看到了這個但是無法回想起這樣做的正確方法...基本上我的.cs文件中有一個名為“string clients”的字符串變量..但是我無法將它傳遞給我的aspx頁面的東西

<%=clients%>  

請糾正我,我不記得或不確定如何做到這一點。 (對c#來說是新的)當我用谷歌搜索它時......不清楚......或者其中很多都沒有...搜索過

“asp.net c# <%= %>結果不一致..也許是因為我不知道怎么稱呼這些......

必須將該字段聲明為public才能從ASPX標記中獲得適當的可見性。 在任何情況下,您都可以聲明一個屬性:


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

更新:它也可以聲明為protected ,如下面的評論中所述。

然后,在ASPX端調用它:

<%=客戶端%>

請注意,如果將其放在服務器標記屬性上,這將不起作用。 例如:

<asp:Label runat =“server”Text =“<%= Clients%>”/>

這是無效的。 這是:

<DIV> <(%)=客戶端%> </ 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>

對於

<%=clients%>

為了工作,你需要在代碼隱藏中擁有一個公共或受保護的變量clients

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

首先,您必須確保變量的訪問級別受到保護或公開。 如果變量或屬性是私有的,則頁面將無法訪問它。

代碼背后

protected String Clients { get; set; }

ASPX

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

在瀏覽ASPX頁面之前,請確保已編譯* .cs文件。

您需要將您的客戶變量聲明為公共變量,例如

public string clients;

但你應該把它作為一個財產,例如

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

然后你可以在你的.aspx頁面中調用它:

<%=Clients%>

默認情況下,C#中的變量是私有的。 詳細了解MSDN上C#中的訪問修飾符MSDN 上C#中的屬性

我會創建一個屬性來訪問變量,如下所示:

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

您可以使用數據綁定表達式<%# 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();
        }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM