cómo llamar a una variable en código detrás de la página aspx

Sé que he visto esto pero no puedo recordar la forma correcta de hacerlo … básicamente tengo una variable de cadena llamada “clientes de cadena” en mi archivo .cs … pero no podía pasarla a mi aspx página algo así como

 

por favor corrígeme, no recuerdo o no estoy seguro de cómo hacer esto. (nuevo en c #) y cuando lo busqué en Google … no estaba claro … o no muchos de estos por ahí … buscado como

asp.net c # resultados no consistentes … tal vez porque no sé cómo llamarlos …

El campo debe declararse public para una visibilidad adecuada del marcado ASPX. En cualquier caso, puede declarar una propiedad:

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

ACTUALIZACIÓN: También se puede declarar como protected , como se indica en los comentarios a continuación.

Luego, para llamarlo por el lado ASPX:

<% = Clientes%>

Tenga en cuenta que esto no funcionará si lo coloca en un atributo de etiqueta de servidor. Por ejemplo:

En su código detrás del archivo, tenga una variable pública

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

ahora en su código de diseño, simplemente asigne eso a algo, como:

 

<%= clients %>

o incluso una variable de javascript

  

por

 <%=clients%> 

para trabajar necesita tener clients públicos o variables protegidos en el código subyacente.

Aquí hay un artículo que lo explica: http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx

Asegúrese de haber comstackdo su archivo * .cs antes de explorar la página ASPX.

Primero, debe asegurarse de que el nivel de acceso de la variable esté protegido o sea público. Si la variable o propiedad es privada, la página no tendrá acceso a ella.

Código detrás

 protected String Clients { get; set; } 

Aspx

 <%=Clients %>  

Debe declarar que sus clientes son variables como públicos, por ejemplo

 public string clients; 

pero probablemente deberías hacerlo como una propiedad, por ejemplo

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

Y luego puede llamarlo en su página .aspx de esta manera:

 <%=Clients%> 

Las variables en C # son privadas por defecto. Lea más sobre los modificadores de acceso en C # en MSDN y las propiedades en C # en MSDN

Crearía una propiedad para acceder a la variable, así:

 protected string Test { get; set; } 

Y en su marcado:

 <%= this.Test %> 

Los HelloFromCsharp.aspx ven así

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

<%= clients%>

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

Puede acceder a una propiedad pública / protegida utilizando la expresión de enlace de datos <%# myproperty %> como se indica a continuación:

   

debe llamar al método DataBind; de lo contrario, no se puede evaluar.

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

}