【发布时间】:2016-04-06 21:17:21
【问题描述】:
假设我们有一个Person 类:
public class Person
{
public string FamilyName {get;set;}
public string GivenName {get;set;}
}
还有一个控件可以以某种方式显示人员列表的信息。这是aspx的伪代码:
<uc1:EmployeesViewer runat="server">
<Employees>
<Person>
<GivenName>John</GivenName>
<FamilyName>Kerry</GivenName>
</Person>
<Person>
<GivenName>Jack</GivenName>
<FamilyName>Lew</GivenName>
</Person>
<Employees>
</uc1:EmployeesViewer>
EmployeesViewer.Employees 的类型为List<Person>,属性为[PersistenceMode(PersistenceMode.InnerProperty)]。
但是 Visual Studio 不编译这个。是否可以使用标记声明Person 对象?
【问题讨论】:
-
为什么要这样做?这看起来很奇怪。
-
@jrummell 我们可以在代码隐藏中分配一个属性,对吧?我只是探索在标记中这样做的可能性,搜索了很多没有运气。
-
那是因为它没有得到很好的支持,并且通常不鼓励,因为您的逻辑不应该在您的视图/页面中定义。但是,您可以在页面中嵌入 c# 代码,但这很难看。 msdn.microsoft.com/en-us/library/ms178135.aspx
-
@jrummell 这不是逻辑;这是我的静态数据。如何处理数据取决于EmployeesViewer,这是在代码隐藏中编写的。在 WPF 中,我们可以做到这一点,例如通过静态资源。即使在asp.net中,你解释写
<body><form id="form1" runat="server"><div>可以吗? -
@jstreet 谢谢,但我说的是 asp.net,而不是 HTML。