【问题标题】:how to create html using foreach loop如何使用 foreach 循环创建 html
【发布时间】:2017-01-29 17:52:58
【问题描述】:

我有一个包含以下代码的 aspx 表单

<div class="media packagesList">
    <a class="media-left fancybox-pop" href="img/packages/package-list-01.png">
        <asp:Image ID="imgThumbnail" runat="server" CssClass="media-object" />
    </a>
    <div class="media-body">
        <div class="bodyLeft">
            <h4 class="media-heading">
                <a href="javascript.void(0)">
                    <asp:Label ID="lblHeading" runat="server"></asp:Label>
                </a>
            </h4>
            <div class="countryRating">
                <span>
                    <asp:Label ID="lblLocation" runat="server"></asp:Label>
                </span>
                <ul class="list-inline rating">
                    <li><i class="fa fa-star" aria-hidden="true"></i></li>
                    <li><i class="fa fa-star" aria-hidden="true"></i></li>
                    <li><i class="fa fa-star" aria-hidden="true"></i></li>
                    <li><i class="fa fa-star" aria-hidden="true"></i></li>
                    <li><i class="fa fa-star" aria-hidden="true"></i></li>
                </ul>
            </div>
            <p>
                <asp:Label ID="lblDescription" runat="server"></asp:Label>
            </p>
            <ul class="list-inline detailsBtn">
                <li><span class="textInfo"><i class="fa fa-calendar" aria-hidden="true"></i>
                    <asp:Label ID="lblDate" runat="server"></asp:Label></span></li>
                <li><span class="textInfo"><i class="fa fa-clock-o" aria-hidden="true"></i>
                    <asp:Label ID="lblDays" runat="server"></asp:Label></span></li>
            </ul>
        </div>
        <div class="bodyRight">
            <div class="bookingDetails">
                <h2>
                    <asp:Label ID="lblPrice" runat="server"></asp:Label></h2>
                <p>Per Person</p>
                <a href="single-package-right-sidebar.html" class="btn buttonTransparent clearfix">Details</a>
                <a class="btn buttonTransparent" data-toggle="modal" href='.html'>Inquiry</a>
            </div>
        </div>
    </div>
</div>

输出是这样的?

请帮助我了解如何动态执行此操作,这样我只需编写一次代码,数据库中的所有游览都会显示在我的游览页面中。

【问题讨论】:

  • 有很多方法可以做到这一点。看看:google.com/#q=c-sharp+how+to+write+a+data-driven+web+page,如果遇到困难,请提出具体问题。
  • 没有帮助。 @Shannon 正如我在我的问题的第一个列表中提到的那样。这是关于 Asp.net 的第二个问题,这显然意味着我站在 asp.net 大楼外敲门向我敞开。所以请任何好的例子都会有所帮助。想以任何方式学习这个。
  • 没有帮助。他应该提到在哪里使用 foreach 循环。

标签: c# sql asp.net dynamic foreach


【解决方案1】:

你可以在asp.net的页面中使用写代码

<% //code %>

或者

<% =data ℅>

也可以拆分代码

<% foreach(var x in values) { %>
<div>hello <%= x.name %></div>
<% } %>

或在剃须刀引擎网页中

@code

@{ //code }

编辑:添加
对于您的示例,假设您有这个课程来展示旅行:

public class Tour{
   public string ImageUrl {get;set;}
   public string Title {get;set;}
   public string Text {get; set; }
}

你有一个旅游列表:

var tours=new List<Tour>();
tours.Add(new Tour()
{
   ImageUrl="img.png",
   Title="Hello World",
   Text="This Is The Body Text"
});
    tours.Add(new Tour()
{
   ImageUrl="img2.png",
   Title="Tour two",
   Text="This Is The Body Text2"
});

在这种情况下,在普通控制台代码中,您将使用 this 为每个值枚举值:

foreach(var item in tours){
    console.WriteLine(item.Title)//Display the title in console
}

让我们将控制台代码更改为 Web 表单代码:

<% foreach(var item in tours){ %>
    <!-- using HTML -->
  <div>
     <img src="<%= item.ImageUrl %>" alt="Image" />
     <span>
          <%= item.Title %><!--The title from the tour -->
     </span>
    <p>
        <%= item.Text %><!--The tour body -->
    </p>
</div>
 <% } %>

希望对您有所帮助。

编辑:示例
这是完整的 Default.aspx.cs 代码:

public partial class _Default : Page
{
    protected IList<Tour> tours;

    protected void Page_Load(object sender, EventArgs e)
    {
        tours= new List<Tour>();
        tours.Add(new Tour()
        {
            ImageUrl = "img.png",
            Title = "Hello World",
            Text = "This Is The Body Text"
        });
        tours.Add(new Tour()
        {
            ImageUrl = "img2.png",
            Title = "Tour two",
            Text = "This Is The Body Text2"
        });
    }
}
public class Tour
{
    public string ImageUrl { get; internal set; }
    public string test { get; set; }
    public string Text { get; internal set; }
    public string Title { get; internal set; }
}


在此示例中,我创建了一个 Tour Seed 列表,其中包含 Page_Load 上的值 瘦你可以通过网页代码访问它:

<% foreach(var item in tours){ %>
    <!-- using HTML -->
  <div>
     <img src="<%= item.ImageUrl %>" alt="Image" />
     <h2>
          <%= item.Title %><!--The title from the tour -->
     </h2>
    <p>
        <%= item.Text %><!--The tour body -->
    </p>
</div>
 <% } %>

这也是How to loop through data in web forms的重复问题

【讨论】:

  • 我在 foreach 循环中不明白的是 (var x in values) x 是一个变量,我知道哪个变量将通过数据进行搜索(如果我是对的),但什么是值? ??在我的代码中用这个值词替换什么?
  • @adilsharif 它只是一个占位符,您可以将其更改为您拥有的任何 IEnumerable
  • 例如考虑一个 IEnumerable 类的值,它包含一个名为 name 的属性,因此在您的代码中它可能是例如 IList of Tours你会得到每次旅行的信息我会用更多细节更新我的答案
  • 嗨,我为 Tours 创建了我的 cs 课程,但现在我遇到了另一个问题。 foreach(var item in Tour) 其中单词 Tour 给出错误。请说明您在示例中使用了哪个 Tour 关键字。
  • 您不要使用 Tour,因为它是一个 不可枚举的类。您需要做的是创建一个包含 multipe Tour 的 List,请参阅 处的答案“并且您有一个游览列表:” 您可能还想将其公开还有
【解决方案2】:

【讨论】:

  • 嗨,我使用了中继器控件。它运作良好,但没有显示我的其他旅行。页面加载时仍然显示唯一的一个游览。请帮助我这里哪里错了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 2016-09-17
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
相关资源
最近更新 更多