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

Как перемещать данные в WebForms, как в MVC

Как мне перемещаться по данным в WebForms, как в ASP.NET MVC? Например, в MVC это так же просто, как:

<table>
    @foreach (var myItem in g)
    { 
        @<tr><td>@MyItem.title<td></tr>
    }
</table>

Какой самый простой и простой способ сделать это в WebForms? Как выглядел бы код?

Или я могу добавить проект MVC в приложение webforms, чтобы вместо этого использовать функции MVC?

Спасибо.

4b9b3361

Ответ 1

Вместо того, чтобы использовать ретранслятор, вы можете просто просмотреть список аналогичным способом типа MVC с помощью тегов <% %> и <%= %>.

<table>
  <% foreach (var myItem in g) { %>
    <tr><td><%= myItem.title %></td></tr>
  <% } %>
</table>

Пока свойство, которое вы просматриваете, доступно на странице aspx/ascx (например, объявлено как защищенное или общедоступное), вы можете пропустить его. В коде отсутствует другой код.

<% %> будет оценивать код, а <%= %> выдаст результат.

Вот пример:

Объявите этот список на уровне своего класса в вашем коде:

public List<string> Sites = new List<string> { "StackOverflow", "Super User", "Meta SO" };

Это просто простой список строк, поэтому в вашем файле aspx

<% foreach (var site in Sites) { %> <!-- loop through the list -->
  <div>
    <%= site %> <!-- write out the name of the site -->
  </div>
<% } %> <!--End the for loop -->

Ответ 2

В WebForm вы можете использовать элемент управления ретранслятора:

<asp:Repeater id="cdcatalog" runat="server">
   <ItemTemplate>
       <td><%# Eval("title")%></td>
   </ItemTemplate>
</asp:Repeater>

В коде позади:

cdcatalog.DataSource = yourData;
cdcatalog.DataBind();

Ответ 3

Вы можете использовать Repeater с любым видом допустимого объекта DataSource (SqlDataSource, EntityDataSource, ObjectDataSource):

  • Определить источник данных
  • Ссылка на источник данных в вашем Reperater

....

 <asp:Repeater id="someRep" runat="server" DataSourceID="YourDataSource">
       <ItemTemplate>
          <tr>
                <td><%# Eval("PropertyName") %></td> 
          </tr>
    </ItemTemplate>
    </asp:Repeater>

...