4

私はジュニア Web 開発者で、ここに投稿するのはこれが初めてです。

何らかの理由で最も内側の if ステートメントが認識されず、代わりにテキストとして出力されるという問題があります。誰でもこれに対する解決策を得ましたか?

編集: 解決策が見つかりました: Razor の foreach および if ステートメントを使用して条件付きで新しいテーブル行を作成できないようです?

@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/Index?productID=@item.ID">
                    <img src="Images/@item.ImageName" width="192" height="108"/>
                </a>
                <br />
                <a href="/ProductDetails/Index?productID=@item.ID">@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>
4

2 に答える 2

9
          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/Index?productID=@item.ID">
                                <img src="Images/@item.ImageName" width="192" height="108"/>
                            </a>
                            <br />
                            <a href="/ProductDetails/Index?productID=@item.ID">@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>
于 2012-07-18T20:12:34.870 に答える