首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从ASP.NET中的标记访问我的代码后台类属性的最佳方法

从ASP.NET中的标记访问我的代码后台类属性的最佳方法
EN

Stack Overflow用户
提问于 2009-07-06 21:11:59
回答 3查看 44.1K关注 0票数 19

假设我有两个文件default.aspx和相关的default.aspx.cs

default.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
    var myObject = new MyObject();
}

有没有一种方法可以在default.aspx中做类似这样的事情:

<%= myObject.SomePropertyOfThisObject%>

..。或者类似的东西,而不需要使用数据库或类似的复杂东西?如果没有办法绑定数据,那么最好的方法是什么呢?

EN

回答 3

Stack Overflow用户

发布于 2009-07-06 21:18:26

它不是必须是公共的才能在该作用域中访问吗?

。。

public var myObject = null;
protected void Page_Load(object sender, EventArgs e)
{
  myObject = new Object();
}
票数 1
EN

Stack Overflow用户

发布于 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);
票数 1
EN

Stack Overflow用户

发布于 2013-07-11 20:44:33

您可以在后台代码(.cs)中将变量声明为受保护,然后在aspx页面上调用该变量以检索所有数据。

例如:

protected IEnumerable<Class> _mydata;

internal void MyDefaultData()
{
mydata = doallthework;
}

在aspx页面上,你可以这样做:

<%=_mydata.FirstOrDefault().FirstName%>

确保在加载时调用方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1089239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档