无法将代码隐藏中的变量传递到.net页面

本文关键字:net 页面 变量 代码 隐藏 | 更新日期: 2023-09-27 18:20:44

我是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/>");
           } 

       }
   }

}

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

<%= displayUser %>

不幸的是,我得到了错误;

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

我不知道这个问题是如何产生的,也不知道从哪里来的。

提前感谢您的帮助。

无法将代码隐藏中的变量传递到.net页面

为了以这种方式访问ASPX标记中的值,它应该是代码背后的一个属性(我认为至少有protected访问权限)。类似这样的东西:

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。

 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/>");
           } 

       }