如何在aspx页面后面的代码中调用变量
本文关键字:代码 调用 变量 aspx | 更新日期: 2023-09-27 18:08:41
我知道我看到过这种情况,但不记得正确的做法…基本上我在我的。cs文件中有一个名为"字符串客户端"的字符串变量。但我不能把它传递到aspx页面比如
<%=clients%>
请纠正我,我不记得或不确定如何做到这一点。(c#新手),当我在谷歌上搜索它…目前还不清楚……或者不是很多这样的…在
"asp.net c# <%= %>
结果不一致.. "也许是因为我不知道如何称呼这些…
字段必须声明为public
,以便从ASPX标记中获得适当的可见性。在任何情况下,您都可以声明一个属性:
private string clients;
public string Clients { get { return clients; } }
UPDATE:也可以声明为protected
,如下面的注释所示。
然后,在ASPX端调用:
& lt; % =客户%>
注意,如果将它放在服务器标记属性上,这将不起作用。例如:
& lt; asp:标签runat ="服务器"文本= "客户& lt; % = %> "/>
这是无效的。这是:
& lt;div> & lt; % = %> & lt;客户/div>
在您的代码后面文件中,有一个公共变量
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>
For
<%=clients%>
工作,你需要有一个公共的或受保护的变量clients
在代码后面。
下面是一篇解释它的文章:http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx
确保在浏览ASPX页面之前编译了*.cs文件
首先必须确保变量的访问级别是protected或public。如果变量或属性是私有的,页面将无法访问它。
背后的代码
protected String Clients { get; set; }
Aspx
<span><%=Clients %> </span>
你需要声明你的客户端变量为公共的,例如
public string clients;
,但你可能应该把它作为一个属性,例如
private string clients;
public string Clients{ get{ return clients; } set {clients = value;} }
然后你可以在你的。aspx页面中这样调用它:
<%=Clients%>
c#中的变量默认是私有的。阅读更多关于c# on MSDN中的访问修饰符和c# on MSDN中的属性
您可以使用数据绑定表达式<%# 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();
}
}
我将创建一个属性来访问变量,如下所示:
protected string Test
{
get; set;
}
在你的标记中:
<%= this.Test %>
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#";
}
}
}