ASP.NET MVC 3 Rasoio Nidificati foreach con se le istruzioni

Io sono un junior web developer e questa è la mia prima volta che postano qui.

Sto avendo un problema in cui, per qualche ragione, la maggior parte interiore se la dichiarazione non viene riconosciuta e, invece, è stampato come testo. Qualcuno ha una soluzione per questo?

EDIT: Trovato una soluzione: Non riesco a condizionale di creare una nuova riga della tabella utilizzando il Rasoio foreach e se le istruzioni?

@model IEnumerable<FairShare.Models.Product>
@{
    ViewBag.Title = "Products";
}
<h2>
    Auctions</h2>
<table border="1">
    <col width="192" />

    @{int i = 0;}
        @foreach (var item in Model)
        {
            if (item.DateEnd.Subtract(DateTime.Now).TotalMinutes > -5)
            {
                if (i == 0)
                {
                    <tr>
                }
            <td>
                <a href="/ProductDetails/[email protected]">
                    <img src="Images/@item.ImageName" width="192" height="108"/>
                </a>
                <br />
                <a href="/ProductDetails/[email protected]">@Html.DisplayFor(modelItem => item.ShortTitle)</a><br />
                @Html.DisplayFor(modelItem => item.ShortDescription)<br />
                <div style="color: red;">@Html.DisplayFor(modelItem => item.TimeLeft)</div>
                <div style="color: green;">
                    Current bid: @Html.DisplayFor(modelItem => item.CurrentBid)</div>
            </td>

                i = i + 1;
                if (i == 5)
                {
                    </tr>
                    i = 0;
                }
            }
        }

</table>

OriginaleL’autore Hudson | 2012-07-18

2 Replies
  1. 8
              You need to write code this way.  @Html.Raw("<tr>")
              Copy the below code and paste it into your view. it will work. 
    
                @model IEnumerable<FairShare.Models.Product>
    
                @{
                    ViewBag.Title = "Products";
                }
                <h2>
                    Auctions</h2>
                <table border="1">
                    <col width="192" />
    
                    @{int i = 0;}
                        @foreach (var item in Model)
                        {
                            if (item.DateEnd.Subtract(DateTime.Now).TotalMinutes > -5)
                            {
                                if (i == 0)
                                {
                                   @Html.Raw("<tr>")
                                }
                            <td>
                                <a href="/ProductDetails/[email protected]">
                                    <img src="Images/@item.ImageName" width="192" height="108"/>
                                </a>
                                <br />
                                <a href="/ProductDetails/[email protected]">@Html.DisplayFor(modelItem => item.ShortTitle)</a><br />
                                @Html.DisplayFor(modelItem => item.ShortDescription)<br />
                                <div style="color: red;">@Html.DisplayFor(modelItem => item.TimeLeft)</div>
                                <div style="color: green;">
                                    Current bid: @Html.DisplayFor(modelItem => item.CurrentBid)</div>
                            </td>
    
    
                                i = i + 1;
                                if (i == 5)
                                {
                                   @Html.Raw("</tr>")
                                    i = 0;
                                }
                            }
                        }
    
                </table>

    OriginaleL’autore VolleyBall Player

  2. 1

    **** Scusa la mia espressione, ma è un po ‘ stupido, ma funziona come in questo esempio. Non hai bisogno di extra @ all’interno del codice e l’uso di html.raw diventa molto utile! Attenzione mancanti TAG di chiusura e il trucco è quello di avvolgere il condizionale contenuti all’interno <text> tag 😉 Come nell’esempio sotto riportato: ****

        @{
            int x = 0;
        }
    
        @foreach (var item in Model)
        {
    
            if (x == 0)
            {
                <text>
                    @Html.Raw("<div id=\"rowbeg\" class=\"row\">")
                </text>
            }
    
            <div class="col-md-3 col-sm-6 col-md-12">
                <div class="item">
                    <!-- Use the below link to put HOT icon -->
                    <div class="item-icon"><span>HOT/SALE/50%</span></div>
                    <!-- Item image -->
                    <div class="item-image">
                        @{
                        var base64 = Convert.ToBase64String(item.ProductImage);
                        var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
                        }
                        <img src='@imgSrc' style="max-width:200px; max-height:150px;" />
                    </div>
                    <!-- Item details -->
                    <div class="item-details">
                        <h5><a href="single-item.html" style="color:blue;">@item.ProductName</a></h5>
                        <div class="clearfix"></div>
                        <p>@item.ProductDescription</p>
                        <!-- Price -->
                        <div class="item-price pull-left">[email protected].ProductPrice</div>
                        <!-- Add to cart -->
                        <div class="pull-right"><a href="#" class="btn btn-success btn-sm">Add to Cart</a></div>
                        <div class="clearfix"></div>
                        <hr />
                    </div>
                </div>
            </div>
    
            x = x + 1;
            if (x == 2)
            {
                x = 0;
                <text>
                @Html.Raw("</div>")
                </text>
    
    
            }
    
    
        }

    OriginaleL’autore Martin MightyMart Lauzon

Lascia un commento