How do I loop through data in WebForms like I do in ASP.NET MVC? For instance, in MVC, this is as simple as:
<table> @foreach (var myItem in g) { @<tr><td>@MyItem.title<td></tr> } </table>
What would the code behind look like?
Or, can I add an MVC project to a WebForms application so that I can use MVC functionality, instead?
Show activity on this post. My completely unscientific opinion: Yes; ASP.NET MVC is faster than web forms. ASP.NET MVC gives screen pops on the order of 1 to 2 seconds. Web forms is more like 3 to 5 seconds.
Luckily, the answer is yes. Combining ASP.NET Webforms and ASP.NET MVC in one application is possible—in fact, it is quite easy.
Generally, the loops in asp.net mvc razor view will work same as other programming languages. We can define the loop inside or outside the code block in razor, and we can use the same foreach looping concept to assign value to define the condition.
Rather than use a repeater, you can just loop through the list in a similar MVC type way using the <% %>
and <%= %>
tags.
<table> <% foreach (var myItem in g) { %> <tr><td><%= myItem.title %></td></tr> <% } %> </table>
As long as the property you're looping through is acessible from the aspx/ascx page (e.g. declared as protected or public) you can loop through it. There is no other code in the code behind necessary.
<% %>
will evaluate the code and <%= %>
will output the result.
Here is the most basic example:
Declare this list at your class level in your code behind:
public List<string> Sites = new List<string> { "StackOverflow", "Super User", "Meta SO" };
That's just a simple list of strings, so then in your aspx file
<% foreach (var site in Sites) { %> <!-- loop through the list --> <div> <%= site %> <!-- write out the name of the site --> </div> <% } %> <!--End the for loop -->
In WebForm you can use Repeater control:
<asp:Repeater id="cdcatalog" runat="server"> <ItemTemplate> <td><%# Eval("title")%></td> </ItemTemplate> </asp:Repeater>
In code behind:
cdcatalog.DataSource = yourData; cdcatalog.DataBind();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With