web-dev-qa-db-fra.com

comment appeler une variable dans code behind à une page aspx

je sais que j'ai vu cela, mais je ne me souviens pas de la manière correcte de le faire ... En gros, j'ai une variable de chaîne appelée "clients de chaîne" dans mon fichier .cs .. page quelque chose comme

<%=clients%>  

corrigez-moi, je ne me souviens pas ou je ne suis pas sûr de savoir comment procéder. (nouveau sur c #) et quand je l'ai googlé .. ce n'était pas clair .. ou pas beaucoup d'entre eux là-bas .. cherché comme

"asp.net c # <%= %> résultats non cohérents .. peut-être parce que je ne sais pas comment appeler cela ..

35
user710502

Le champ doit être déclaré public pour une visibilité appropriée à partir du balisage ASPX. Dans tous les cas, vous pouvez déclarer une propriété:


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

UPDATE: Il peut également être déclaré comme protected, comme indiqué dans les commentaires ci-dessous.

Ensuite, pour l'appeler du côté ASPX:

<% = Clients%>

Notez que cela ne fonctionnera pas si vous le placez sur un attribut de balise de serveur. Par exemple:

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

Ce n'est pas valide C'est:

<div> <% = Clients%> </ div>

Dans votre code derrière le fichier, avoir une variable publique

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

maintenant, dans votre code de conception, assignez simplement cela à quelque chose, comme

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

ou même une variable javascript

<script type="text/javascript">

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

</script>
26
balexandre

For

<%=clients%>

pour fonctionner, vous devez avoir une variable publique ou protégée clients dans le code-behind.

Voici un article qui l'explique: http://msdn.Microsoft.com/en-us/library/6c3yckfw.aspx

8
Maxim V. Pavlov

Assurez-vous d'avoir bien compilé votre fichier * .cs avant de parcourir la page ASPX.

6
Mark Cidade

Tout d'abord, vous devez vous assurer que le niveau d'accès de la variable est protégé ou public. Si la variable ou la propriété est privée, la page n'y aura pas accès.

Code derrière 

protected String Clients { get; set; }

Aspx

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

Vous devez déclarer votre variable client comme publique, par exemple.

public string clients;

mais vous devriez probablement le faire en tant que propriété, par exemple.

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

Et puis vous pouvez l'appeler dans votre page .aspx comme ceci:

<%=Clients%>

Les variables en C # sont privées par défaut. En savoir plus sur modificateurs d’accès en C # sur MSDN et propriétés en C # sur MSDN

4
Tchami

Je créerais une propriété pour accéder à la variable, comme ceci:

protected string Test
{
    get; set;
}

Et dans votre balisage:

<%= this.Test %>
2
James Johnson

Le HelloFromCsharp.aspx ressemble à ceci

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

Et le 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

Vous pouvez accéder à une propriété publique/protégée en utilisant l'expression de liaison de données <%# myproperty %> comme indiqué ci-dessous:

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

vous devez appeler la méthode DataBind, sinon elle ne peut pas être évaluée.

    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