ASP.NET三层前台不能用<%=name %>调用后台变量

越来越自由的人生 2015-06-12 11:29:36
前台
<%=name %>
获取不到name

后台
protected string name = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{

}
}
...全文
282 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanglong_longlong 2015-06-12
  • 打赏
  • 举报
回复
public string name = "";
tcmakebest 2015-06-12
  • 打赏
  • 举报
回复
取到也是一场空,楼主那个变量何时赋值了,Page_Load 里要写上
insus 2015-06-12
  • 打赏
  • 举报
回复
Insus.NET再使用Eval("")方法来绑定一个属性,代码稍多了几行:



在网页使用Eval()方法的例子:
http://www.cnblogs.com/insus/archive/2013/04/26/3045046.html
http://www.cnblogs.com/insus/p/3227267.html
insus 2015-06-12
  • 打赏
  • 举报
回复
Insus.NET再改一下,把"="改为“#”,这需要在在Page_Load事件写this.DataBind();
  • 打赏
  • 举报
回复
嗯,是的。有些人报bug的形式就还没有规范,然后直接把问题丢给别人,所以不容易理解。
於黾 2015-06-12
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
页面生命周期只有一瞬间,每一次页面回发,属性都会初始化的。因此可持久化的属性应该写
public string name
{
    get
    {
        return (string)ViewState["name"];
    }
    set
    {
        ViewState["name"] = value;
    }
}
所以我觉得应该跟public还是protected无关 ViewState在Page_load里赋值取值应该也可以吧
於黾 2015-06-12
  • 打赏
  • 举报
回复
所谓访问不到值,是报错了,还是显示的是空白的 你根本也没给值啊,给的不是空字符串吗
  • 打赏
  • 举报
回复
页面生命周期只有一瞬间,每一次页面回发,属性都会初始化的。因此可持久化的属性应该写
public string name
{
    get
    {
        return (string)ViewState["name"];
    }
    set
    {
        ViewState["name"] = value;
    }
}
於黾 2015-06-12
  • 打赏
  • 举报
回复
哎? aspx和aspx.cs不是继承关系吗? 函数可以访问,按理说变量也应该能访问啊
insus 2015-06-12
  • 打赏
  • 举报
回复
refer here:

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧