假设我有一个类型为Car的对象,我想将其呈现为HTML:
class Car { public int Wheels { get; set; } public string Model { get; set; } }
我不想使用ASP.NET Repeater或ListView控件进行绑定,因为它看起来太冗长了.我只有一个对象.但我仍然希望能够使用数据绑定语法,因此我不必使用标签或文字.就像是:
Wheels: <%# (int)Eval("Wheels") %>
Model: <%# (string)Eval("Model") %>
有没有人知道那里的控制权呢?
我还没准备好切换到ASP.NET MVC.
不幸的是,DetailsView控件不能满足我的需求,因为它似乎不支持我所追求的模板式语法.它也需要绑定到某种类型的DataSource对象.
我更喜欢Maxim和Torkel建议的解决方案.我会尽力去做.
如果页面是关于特定项目(例如,Car.aspx?CarID = ABC123),我通常在名为"CurrentCar"的页面上有一个公共属性
public Car CurrentCar { get; set; }
然后我可以得到以下内容:
Wheels: <%= CurrentCar.Wheels %>
Model: <%= CurrentCar.Model %>
这样可以让你有类型安全.只需确保在实际渲染之前分配有效对象.
我建议您在页面上将汽车设为受保护的属性,这将允许您直接在aspx页面中访问它:
Wheels: <%= Car.Wheels %> Wheels: <%= Car.Models %>
对于单项数据绑定方案,这种方法实际上更好,因为"绑定"是强类型的.