Best way to access properties of my code behind class from the markup in ASP.NET
asp.net, c#, scope
Solution
You can, but you'll have to do it a bit differently. In your default.aspx.cs, add a member:
protected MyObject _myObject;
Then, in Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
_myObject = new MyObject();
}
Then, in default.aspx, you can do:
<%= _myObject.SomePropertyOfThisObject %>
Of course, this assumes that class MyObject has a property named Awesome. You didn't mean the System.Object class, did you, since it doesn't have a property named Awesome.
Since your question was asking about the best way, I'll go further. The way I showed is not the best. The best is more often to use a data binding expression. If you don't like those, then you can set things in the codebehind:
protected void Page_Load(object sender, EventArgs e)
{
_myObject = new MyObject();
//
_myLabel.Text = _myObject.SomePropertyOfThisObject;
}
Assuming:
<asp:Label runat="server" id="_myLabel" />
Problem
Let's say I have two files `default.aspx` and the associated `default.aspx.cs`. default.aspx.cs: ``` protected void Page_Load(object sender, EventArgs e) { var myObject = new MyObject(); } ``` Is there a way that in the `default.aspx` I could do something like: ``` <%= myObject.SomePropertyOfThisObject%> ``` ... or something similar, without having to use databinders or something complicated like this? And if there's no way around binding the data, what would be the best way to do it?