在aspx页面上调用静态方法不起作用?

时间:2014-04-02 06:51:50

标签: c# asp.net

我有一个名为MasterPage_MyMasterPage的母版页,我创建了一个静态方法

public static string GetRoleName()
    {
        string sRoleName="admin";


        if (HttpContext.Current.Session["UserName"] != null)
        {
            sRoleName = HttpContext.Current.Session["UserName"].ToString();
        }
        return sRoleName;
    }

在aspx页面上我将其称为

<a >Brayan <asp:Label runat="server" Text='<%= MasterPage_MyMasterPage.GetRoleName() %>' ></asp:Label>

但它不起作用,它打印为......

Brayan <span><%= MasterPage_MyMasterPage.GetRoleName() ;></span>       

会话[&#34; UserName&#34;]在登录成功时绑定。请帮助我。

4 个答案:

答案 0 :(得分:2)

嘿,请尝试这个适合我

<a >Brayan <asp:Label runat="server" Text='' ><%= MasterPage_MyMasterPage.GetRoleName()%>     </asp:Label>

答案 1 :(得分:0)

使用<%= ... %>语法的

Inline expressions可用于呈现页面。

但它们无法用于设置服务器控制属性,这是您尝试执行的操作(Label.Text属性)。

请考虑使用data-binding syntax

... Text = "<%# MasterPage_MyMasterPage.GetRoleName() %>"

答案 2 :(得分:0)

试试这个

<%= ((MasterPage_MyMasterPage)Page.Master).GetRoleName() %>

更新

在你的cs文件中创建一个类似于

的受保护方法
protected string getRoleName()
{
    return ((MasterPage_MyMasterPage)Page.Master).GetRoleName();
}

并在aspx文件中

<%= getRoleName() %>

答案 3 :(得分:0)