日期:2014-05-18  浏览次数:20484 次

客户端获取不到了服务端的值?
在一个UserControl(Header.ascx)中,有一排超链接,超链接的链接地址是由后台代码生成的,我是这样写的:
ascx:
<li>
      <%#   m_strUrlDownload   %>
</li>
ascx.cs:
在page_load中调用SetUrl,m_strUrl已有初值
private   void   SetUrl()
{
    m_strUrlDownload   =   m_strUrl   +   "/download ";
    m_strUrlDownload   =   " <A   href= ' "   +   m_strUrlDownload   +   " '> 下载 </A> ";
}
可是最后运行的时候,在网页中并未出现超链接,就是说 <%#   m_strUrlDownload   %> 这里没有任何反映。
我跟了一下,SetUrl是执行到了的,m_strUrlDownload也是正确赋值了的。
不知道为什么没有值?

------解决方案--------------------
public string m_strUrlDownload= " ";
<%=m_strUrlDownload %>
------解决方案--------------------
up
------解决方案--------------------
如果想在前台调用后台的变量,那么这个变量的可访问性至少应该大于等于 protected
也就是说,在你的用户控件的CS 代码里应该这样定义:

protected string m_strUrlDownload = " ";

private void SetUrl()
{
m_strUrlDownload = m_strUrl + "/download ";
m_strUrlDownload = " <A href= ' " + m_strUrlDownload + " '> 下载 </A> ";
}
------解决方案--------------------
<%= m_strUrlDownload %>
------解决方案--------------------
用这样
<%=m_strUrlDownload %>

你那样是绑定 需要调用DataBind方法才行
------解决方案--------------------
是不能使用 <%# m_strUrlDownload %> ,而要使用 <%= m_strUrlDownload %>