假设我有两个文件default.aspx
和相关的default.aspx.cs
。
default.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
var myObject = new MyObject();
}
有没有一种方法可以在default.aspx
中做类似这样的事情:
<%= myObject.SomePropertyOfThisObject%>
..。或者类似的东西,而不需要使用数据库或类似的复杂东西?如果没有办法绑定数据,那么最好的方法是什么呢?
发布于 2009-07-06 21:18:26
它不是必须是公共的才能在该作用域中访问吗?
。。
public var myObject = null;
protected void Page_Load(object sender, EventArgs e)
{
myObject = new Object();
}
发布于 2009-07-06 21:24:46
你可以直接在ASPX文件中做任何你想做的编码,而不是使用codebehind。所以,为了完成我认为你想做的事情,你应该...
<some html>
<% var MyObject = new MyObject();
Response.Write(myObj.Awesome()); %>
<some html>
但是,并不推荐这样做。代码隐藏是建议的“最佳实践”方式,因为它将您的代码与标记分开,而这是任何好的架构中的基础。为了避免数据绑定,我建议使用John Saunders发布的内容,但你真的应该考虑在代码背后使用生命周期事件来操作你的控件,而不是直接将对象属性输出到HTML中。例如,如果您试图输出一些文本,则执行以下操作
var literal = new LiteralControl(myObject.Awesome());
myPanel.Controls.Add(literal);
发布于 2013-07-11 20:44:33
您可以在后台代码(.cs)中将变量声明为受保护,然后在aspx页面上调用该变量以检索所有数据。
例如:
protected IEnumerable<Class> _mydata;
internal void MyDefaultData()
{
mydata = doallthework;
}
在aspx页面上,你可以这样做:
<%=_mydata.FirstOrDefault().FirstName%>
确保在加载时调用方法。
https://stackoverflow.com/questions/1089239
复制相似问题