有没有一种方法可以在没有eg的情况下绑定单个项目.中继器控制?

Jac*_*obE 19 c# asp.net webforms

假设我有一个类型为Car的对象,我想将其呈现为HTML:

class Car {
  public int Wheels { get; set; }
  public string Model { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我不想使用ASP.NET Repeater或ListView控件进行绑定,因为它看起来太冗长了.我只有一个对象.但我仍然希望能够使用数据绑定语法,因此我不必使用标签或文字.就像是:

<div>
  Wheels: <%# (int)Eval("Wheels") %><br />
  Model: <%# (string)Eval("Model") %>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有人知道那里的控制权呢?

我还没准备好切换到ASP.NET MVC.


不幸的是,DetailsView控件不能满足我的需求,因为它似乎不支持我所追求的模板式语法.它也需要绑定到某种类型的DataSource对象.

我更喜欢Maxim和Torkel建议的解决方案.我会尽力去做.

Max*_*ler 26

如果页面是关于特定项目(例如,Car.aspx?CarID = ABC123),我通常在名为"CurrentCar"的页面上有一个公共属性

public Car CurrentCar { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后我可以得到以下内容:

<div>
  Wheels: <%= CurrentCar.Wheels %><br />
  Model: <%= CurrentCar.Model %>
</div>
Run Code Online (Sandbox Code Playgroud)

这样可以让你有类型安全.只需确保在实际渲染之前分配有效对象.


Tor*_*kel 5

我建议您在页面上将汽车设为受保护的属性,这将允许您直接在aspx页面中访问它:

<div>
  Wheels: <%= Car.Wheels %>
  Wheels: <%= Car.Models %>
</div>
Run Code Online (Sandbox Code Playgroud)

对于单项数据绑定方案,这种方法实际上更好,因为"绑定"是强类型的.