如何将类模型/对象从代码隐藏传递到aspx页面?

时间:2016-10-11 10:49:21

标签: c# asp.net webforms

如何从后面的代码将类模型对象传递给我的aspx页面。在ASP MVC中,我可以使用视图模型轻松完成。不幸的是,我被困住了 使用asp webforms应用程序,需要一些增强功能,而且我不熟悉asp.net webform和转发器控件。

protected void Page_Load(object sender, EventArgs e)
{
            var orders = new List<Orders>();

             // Do some stuff and get orders

            var userInfo = new UserInfo()
            {
                Name = "Joe Blogs,
                Age = "25",
                Address = "123 Green Lane",
                Orders = orders
            };

}

我知道我可以创建服务器变量并按个别方式传递它们,但实际上我需要传递一个对象,因为它可能包含我需要在我的aspx页面中迭代的IEnumerable值。所以我尝试了类似下面的事情:

<% foreach (var order in UserInfo.Orders) { %> <!-- loop through the list -->
  <div>
    <%= order %> <!-- write out the name of the site -->
  </div>
<% } %>

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

您可以拥有一个返回对象的属性或方法,并在页面上调用它。确保使用正确的标记。在数据绑定上下文中使用:

.all-portfolios div[class*=col-]
{
min-height:auto !important;
}

除此之外

<%# GetUser() %>

很少考虑:

  • 确保这些标记内的表达式的最终输出是字符串。
  • <%= GetUser() %> 或者您称之为“私人”
  • 在数据绑定上下文中(例如在gridview,repeater等内部),当控件是数据绑定时,将调用此方法
  • 在数据绑定上下文之外,这段代码将很早执行 - 不依赖于在Page_Load上从数据库中获取数据,这太晚了

但是我想提一下,你可能想在这里重新考虑整个方法。 aspx中的简单foreach迭代通常是一种不好的做法。此外,很难让这个标记正确。为什么当你有一个转发器绑定到你的数据时呢?

GetUser

这看起来比aspx中的任何迭代都要清晰。