c# - 有没有一种方法可以在没有例如的情况下对单个项目进行数据绑定(bind)。中继器控件?

标签 c# asp.net webforms

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

class Car {
  public int Wheels { get; set; }
  public string Model { get; set; }
}

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

<div>
  Wheels: <%# (int)Eval("Wheels") %><br />
  Model: <%# (string)Eval("Model") %>
</div>

有没有人知道那里有一个控件可以做到这一点?

而且我还没有准备好切换到 ASP.NET MVC。


不幸的是,DetailsView 控件不能满足我的需要,因为它似乎不支持我所追求的模板样式语法。它也需要绑定(bind)到某种数据源对象。

我更喜欢 Maxim 和 Torkel 建议的解决方案。我会努力做到这一点。

最佳答案

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

public Car CurrentCar { get; set; }

然后我可以拥有以下内容:

<div>
  Wheels: <%= CurrentCar.Wheels %><br />
  Model: <%= CurrentCar.Model %>
</div>

这让你拥有类型安全。只需确保在实际渲染之前分配了一个有效对象即可。

关于c# - 有没有一种方法可以在没有例如的情况下对单个项目进行数据绑定(bind)。中继器控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/225263/

相关文章:

c# - 将类添加到 EF 模型导致编译错误 "The type or namespace name <className> could not be found"

c# - 如何解决 .NET Core 包版本冲突

c# - 怎样做才能只得到一个列表?

c# - 方法 'GetTouchPoint' 没有重载需要 0 个参数

ASP.NET SSL 身份验证票证安全吗?

Javascript 在 gridview 中处理数据

c# - 如何将 TextBox 输入传递给 asp.net 中的 gridview?

javascript - 使用 AJAX 输入类型 ="submit"而不是输入类型 ="button"?

asp.net-mvc - Asp.net MVC 真的消除了 View 状态吗?

c# - 在 C# : Vector, 方向(单位向量)、点中实现这 3 个类的最佳方式