Как вызвать переменную в коде позади страницы aspx
Я знаю, что видел это, но не могу вспомнить правильный способ сделать это... в основном у меня есть строковая переменная, называемая "строковыми клиентами" в моем файле .cs.. но я не смог ее передать на мою страницу aspx что-то вроде
<%=clients%>
пожалуйста, поправьте меня, я не помню или не знаю, как это сделать. (новичок в С#), и когда я googled это.. было неясно.. или не многие из них там.. искали как
"asp.net С# <%= %>
непротиворечивые результаты.. может быть, потому что я не знаю, как их назвать.
Ответы
Ответ 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();
}
}