Solved this, solution below
Since I used a web user control in this case the usual scenarios would not work. But by putting a databind in the page that controls the user control, or any materpage in the chain above the web user control the code started to work
MasterPage codebehind
public partial class MasterPages_MyTopMaster : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
// Databind this to ensure user controls will behave
this.DataBind();
}
}
Ascx file, all suggested solutions below works
<%@ Control Language="C#" AutoEventWireup="False" CodeFile="Header.ascx.cs" Inherits="Site.UserControls.Base.Header" %>
1: <asp:Literal runat="server" Text='<%# DataBinder.GetPropertyValue(this, "Testing") %>' />
2: <asp:Literal runat="server" Text='<%# DataBinder.Eval(this, "Testing") %>' />
3: <asp:Literal runat="server" Text='<%# Testing2 %>' />
Codebehind of ascx
namespace Site.UserControls.Base
{
public partial class Header : UserControlBase //UserControl
{
public string Testing { get { return "hello world!"; } }
public string Testing2 = "hello world!";
protected void Page_Load(object sender, EventArgs e)
{ }
}
}
Thanks for the inspiration!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…