Подтвердить что ты не робот

Как вызвать переменную в коде позади страницы aspx

Я знаю, что видел это, но не могу вспомнить правильный способ сделать это... в основном у меня есть строковая переменная, называемая "строковыми клиентами" в моем файле .cs.. но я не смог ее передать на мою страницу aspx что-то вроде

<%=clients%>  

пожалуйста, поправьте меня, я не помню или не знаю, как это сделать. (новичок в С#), и когда я googled это.. было неясно.. или не многие из них там.. искали как

"asp.net С# <%= %> непротиворечивые результаты.. может быть, потому что я не знаю, как их назвать.

4b9b3361

Ответ 1

Поле должно быть объявлено public для правильной видимости из разметки ASPX. В любом случае вы можете объявить свойство:


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

UPDATE: Он также может быть объявлен как protected, как указано в комментариях ниже.

Затем, чтобы вызвать его со стороны ASPX:

<% =% Клиенты >

Обратите внимание, что это не будет работать, если вы поместите его на атрибут тега сервера. Например:

< asp: Label runat = "server" Текст = "<% = Клиенты% > " /" >

Это неверно. Это:

<DIV> <% = Клиенты% > </DIV>

Ответ 2

В вашем коде за файлом есть общедоступная переменная

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>

Ответ 3

Для

<%=clients%>

для работы вам нужно иметь общедоступную или защищенную переменную clients в коде.

Вот статья, которая объясняет это: http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx

Ответ 4

Перед просмотром страницы ASPX убедитесь, что вы скомпилировали ваш файл *.cs.

Ответ 5

Вам нужно объявить переменную ваших клиентов общедоступной, например.

public string clients;

но вы должны, вероятно, сделать это как свойство, например

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

И затем вы можете вызвать его на странице .aspx следующим образом:

<%=Clients%>

Переменные в С# по умолчанию являются закрытыми. Подробнее о модификатора доступа в С# в MSDN и свойства в С# на MSDN

Ответ 6

Сначала вы должны убедиться, что уровень доступа переменной защищен или общедоступен. Если переменная или свойство являются закрытыми, страница не будет иметь к ней доступа.

Код за

protected String Clients { get; set; }

Aspx

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

Ответ 7

Я бы создал свойство для доступа к переменной, например:

protected string Test
{
    get; set;
}

И в вашей разметке:

<%= this.Test %>

Ответ 8

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

Ответ 9

Вы можете получить доступ к общедоступному/защищенному свойству, используя выражение привязки данных <%# 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();
        }

}