C# 无法将变量从“我的代码隐藏”传递到.net页

C# 无法将变量从“我的代码隐藏”传递到.net页,c#,asp.net,C#,Asp.net,我是C#的新手,我遇到了一个变量的问题,我无法调用该变量来显示在我的aspx页面上 背后的代码如下所示: using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlC

我是C#的新手,我遇到了一个变量的问题,我无法调用该变量来显示在我的aspx页面上

背后的代码如下所示:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;

namespace PRIIS
{
   public partial class _Default : System.Web.UI.Page
   {
    private DirectoryEntry GetDirectoryObject()
    {
        DirectoryEntry oDE;
        oDE = new DirectoryEntry("LDAP://192.168.5.4", "user", "xxxx", AuthenticationTypes.Secure);
        return oDE;
    }
    public DirectoryEntry GetUser(string UserName)
    {
        DirectoryEntry de = GetDirectoryObject();
        DirectorySearcher deSearch = new DirectorySearcher();
        deSearch.SearchRoot = de;

        deSearch.Filter = "(&(objectClass=user)(SAMAccountName=" + UserName + "))";
        deSearch.SearchScope = SearchScope.Subtree;
        SearchResult results = deSearch.FindOne();

        if (!(results == null))
        {
            de = new DirectoryEntry(results.Path, "user", "xxxx", AuthenticationTypes.Secure);
            return de;
        }
        else
        {
            return null;
        }

    }
    public class MyUserName
    {
        public string strName;
        public string str;

        public void userNameOnSystem()
        {
            strName = HttpContext.Current.User.Identity.Name.ToString();
            string[] splitString = strName.Split('\\');
            str = splitString[1];
        }



    }

    protected void Page_Load(object sender, EventArgs e)
    {

        DirectoryEntry de = GetUser("dramirez");
        if (de != null)
        {

            string displayUser = de.Properties["displayName"].Value.ToString();

            Response.Write(displayUser + "<br/>");
            //Response.Write(de.Properties["telephoneNumber"].Value.ToString() + "<br/>");
            //Response.Write(de.Properties["mail"].Value.ToString() + "<br/>");
            //Response.Write(de.Properties["userPrincipalName"].Value.ToString() + "<br/>");

           } 



       }

   }
使用系统;
使用系统集合;
使用系统配置;
使用系统数据;
使用System.Linq;
使用System.Web;
使用System.Web.Security;
使用System.Web.UI;
使用System.Web.UI.HTMLControl;
使用System.Xml.Linq;
使用System.DirectoryServices;
使用System.DirectoryServices.AccountManagement;
名称空间优先级
{
公共部分类\u默认值:System.Web.UI.Page
{
private DirectoryEntry GetDirectoryObject()
{
目录条目代码;
oDE=新的目录条目(“LDAP://192.168.5.4”,“用户”,“xxxx”,AuthenticationTypes.Secure);
返回颂歌;
}
public DirectoryEntry GetUser(字符串用户名)
{
DirectoryEntry de=GetDirectoryObject();
DirectorySearcher deSearch=新的DirectorySearch();
deSearch.SearchRoot=de;
deSearch.Filter=“(&(objectClass=user)(SAMAccountName=“+UserName+”)”);
deSearch.SearchScope=SearchScope.Subtree;
SearchResult results=deSearch.FindOne();
如果(!(结果==null))
{
de=新目录条目(results.Path,“user”,“xxxx”,AuthenticationTypes.Secure);
返回de;
}
其他的
{
返回null;
}
}
公共类MyUserName
{
公共字符串strName;
公共字符串str;
public void usernameosystem()
{
strName=HttpContext.Current.User.Identity.Name.ToString();
string[]splitString=strName.Split('\\');
str=splitString[1];
}
}
受保护的无效页面加载(对象发送方、事件参数e)
{
DirectoryEntry de=GetUser(“dramirez”);
如果(de!=null)
{
字符串displayUser=de.Properties[“displayName”].Value.ToString();
Response.Write(displayUser+“
”); //Write(de.Properties[“telephoneNumber”].Value.ToString()+“
”); //Write(de.Properties[“mail”].Value.ToString()+“
”); //Write(de.Properties[“userPrincipalName”].Value.ToString()+“
”); } } }
}

我所做的调用是调用displayUser字符串,我希望使用以下语句在.aspx页面上显示该字符串

<%= displayUser %>

不幸的是,我得到了错误

错误2当前上下文中不存在名称“displayUser”

我也不确定这个问题是如何或从何而来的


提前感谢您的帮助。

为了以这种方式从您的ASPX标记中访问值,它应该是代码隐藏中的一个属性(我相信至少是受保护的
访问)。大概是这样的:

protected string DisplayUser { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    DirectoryEntry de = GetUser("dramirez");
    if (de != null)
    {
        DisplayUser = de.Properties["displayName"].Value.ToString();
    } 
}
然后,它应显示以下内容:

<%= DisplayUser %>

为了以这种方式从ASPX标记中访问值,它应该是代码隐藏中的一个属性(我相信至少是
受保护的
访问)。大概是这样的:

protected string DisplayUser { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    DirectoryEntry de = GetUser("dramirez");
    if (de != null)
    {
        DisplayUser = de.Properties["displayName"].Value.ToString();
    } 
}
然后,它应显示以下内容:

<%= DisplayUser %>

将变量声明为公共变量

 public string displayUser;
 protected void Page_Load(object sender, EventArgs e)
    {

        DirectoryEntry de = GetUser("dramirez");
        if (de != null)
        {

            displayUser = de.Properties["displayName"].Value.ToString();

            Response.Write(displayUser + "<br/>");
            //Response.Write(de.Properties["telephoneNumber"].Value.ToString() + "<br/>");
            //Response.Write(de.Properties["mail"].Value.ToString() + "<br/>");
            //Response.Write(de.Properties["userPrincipalName"].Value.ToString() + "<br/>");

           } 



       }
公共字符串显示用户;
受保护的无效页面加载(对象发送方、事件参数e)
{
DirectoryEntry de=GetUser(“dramirez”);
如果(de!=null)
{
displayUser=de.Properties[“displayName”].Value.ToString();
Response.Write(displayUser+“
”); //Write(de.Properties[“telephoneNumber”].Value.ToString()+“
”); //Write(de.Properties[“mail”].Value.ToString()+“
”); //Write(de.Properties[“userPrincipalName”].Value.ToString()+“
”); } }
将变量声明为公共变量

 public string displayUser;
 protected void Page_Load(object sender, EventArgs e)
    {

        DirectoryEntry de = GetUser("dramirez");
        if (de != null)
        {

            displayUser = de.Properties["displayName"].Value.ToString();

            Response.Write(displayUser + "<br/>");
            //Response.Write(de.Properties["telephoneNumber"].Value.ToString() + "<br/>");
            //Response.Write(de.Properties["mail"].Value.ToString() + "<br/>");
            //Response.Write(de.Properties["userPrincipalName"].Value.ToString() + "<br/>");

           } 



       }
公共字符串显示用户;
受保护的无效页面加载(对象发送方、事件参数e)
{
DirectoryEntry de=GetUser(“dramirez”);
如果(de!=null)
{
displayUser=de.Properties[“displayName”].Value.ToString();
Response.Write(displayUser+“
”); //Write(de.Properties[“telephoneNumber”].Value.ToString()+“
”); //Write(de.Properties[“mail”].Value.ToString()+“
”); //Write(de.Properties[“userPrincipalName”].Value.ToString()+“
”); } }