it-swarm.it

come chiamare una variabile nel codice dietro alla pagina aspx

so di aver visto questo, ma non posso richiamare il modo corretto di farlo ... fondamentalmente ho una variabile stringa chiamata "string client" nel mio file .cs .. ma non ero in grado di passarlo al mio aspx pagina qualcosa di simile

<%=clients%>  

per favore correggimi, non ricordo o non sono sicuro di come farlo. (nuovo al c #) e quando lo ho cercato su google ... non era chiaro .. o non molti di questi là fuori ... cercati come

"asp.net c # <%= %> risultati non coerenti .. forse perché non so come chiamare questi ..

35
user710502

Il campo deve essere dichiarato public per una visibilità adeguata dal markup ASPX. In ogni caso, puoi dichiarare una proprietà:


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

AGGIORNAMENTO: Può anche essere dichiarato come protected, come indicato nei commenti seguenti.

Quindi, per chiamarlo sul lato ASPX:

<% = Clienti%>

Si noti che questo non funzionerà se lo si posiziona su un attributo di tag del server. Per esempio:

<asp: Label runat = "server" Text = "<% = Client%>" />

Questo non è valido Questo è:

<Div> <% = Clienti%> </ div>

Nel tuo codice dietro il file, hai una variabile pubblica

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

ora nel tuo codice di progettazione, basta assegnarlo a qualcosa, come:

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

o anche una variabile javascript

<script type="text/javascript">

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

</script>
26
balexandre

For

<%=clients%>

per funzionare è necessario avere una variabile pubblica o protetta clients nel code-behind.

Ecco un articolo che lo spiega: http://msdn.Microsoft.com/en-us/library/6c3yckfw.aspx

8
Maxim V. Pavlov

Assicurati di aver compilato il tuo file * .cs prima di navigare nella pagina ASPX.

6
Mark Cidade

Per prima cosa devi assicurarti che il livello di accesso della variabile sia protetto o pubblico. Se la variabile o la proprietà sono private, la pagina non avrà accesso ad essa.

Codice dietro 

protected String Clients { get; set; }

Aspx

<span><%=Clients %> </span>
5
Cris Valenzuela

Devi dichiarare la variabile dei tuoi clienti come pubblica, ad es.

public string clients;

ma dovresti probabilmente farlo come proprietà, ad es.

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

E quindi puoi chiamarlo nella tua pagina .aspx in questo modo:

<%=Clients%>

Le variabili in C # sono private per impostazione predefinita. Maggiori informazioni su modificatori di accesso in C # su MSDN e proprietà in C # su MSDN

4
Tchami

Vorrei creare una proprietà per accedere alla variabile, in questo modo:

protected string Test
{
    get; set;
}

E nel tuo markup:

<%= this.Test %>
2
James Johnson

Il HelloFromCsharp.aspx assomiglia a questo

 <%@ 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>

E il 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#";
        }
    }
}
1
Skitty

È possibile accedere a una proprietà pubblica/protetta utilizzando l'espressione di associazione dati <%# myproperty %> come indicato di seguito:

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

dovresti chiamare il metodo DataBind, altrimenti non può essere valutato.

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

0
M.Hassan