Подтвердить что ты не робот

Есть ли способ привязки данных к одному элементу без eg. контроль репитера?

Допустим, у меня есть один объект типа Car, который я хочу отобразить как HTML:

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

Я не хочу использовать элементы управления ASP.NET Repeater или ListView для привязки, потому что он кажется слишком подробным. У меня только один объект. Но я все еще хочу иметь возможность использовать синтаксис привязки данных, поэтому мне не придется использовать ярлыки или литералы. Что-то вроде:

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

Кто-нибудь знает о контроле, который делает именно это?

И пока я еще не готов переключиться на ASP.NET MVC.


К сожалению, элемент управления DetailsView не удовлетворяет моим потребностям, потому что он, похоже, не поддерживает синтаксис шаблона, который я использую. Он также должен быть привязан к объекту DataSource.

Мне понравилось лучшее решение, предложенное Максимом и Торкелем. Я постараюсь пойти на это.

4b9b3361

Ответ 1

если страница посвящена определенному элементу (например, Car.aspx? CarID = ABC123), обычно у меня есть общедоступное свойство на странице "CurrentCar"

public Car CurrentCar { get; set; }

И я могу получить следующее:

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

Это позволяет вам иметь безопасность типа. Просто убедитесь, что у вас есть действительный объект, назначенный до фактического рендеринга.

Ответ 2

Я предлагаю вам сделать автомобиль защищенным свойством на странице, это позволит вам получить к нему доступ непосредственно на странице aspx:

<div>
  Wheels: <%= Car.Wheels %>
  Wheels: <%= Car.Models %>
</div>

Этот подход на самом деле лучше подходит для сценариев привязки отдельных элементов, поскольку "привязка" строго типизирована.

Ответ 3

Один из недостатков решения защищенного свойства заключается в том, что вы не можете использовать его для привязки к свойствам элементов управления.

Например, следующее не будет работать:

<asp:Label ID="Label1" Text="Probably a truck" Visible='<%# CurrentCart.Wheels > 4 %>' runat="server" />