0

複数のタイム スロットがある会議サイトの単純な関係があり、各タイム スロットに複数のセッションを表示したいと考えています。

以下のコードは正しく動作しますが、外側のコード ブロックで @Html.Raw("..") を使用する必要がありました。生の html (最初の @Html.Raw("") のすぐ上にABCDなど) を配置しようとすると、コンパイラ エラーが発生します。ネストされた foreach に実際の html コードがあり、すべてをヘルパー メソッドでラップする必要はありません。

ありがとう。

    @Html.Raw("<table id='myTable' border='1'>")

    @foreach (var sessionTime in Model.SessionsByTime)
    { 
        @Html.Raw("<tr>")
        @Html.Raw("<td>")
        @sessionTime.StartTimeFriendly
        @Html.Raw("</td>")
        @Html.Raw("<td></td>")
        @Html.Raw("</tr>")

        @Html.Raw("<table>")
            foreach (var session in sessionTime.sessionsResults)
            {
            <tr>
                <td width="300"></td>
                <td width="300">@session.Title</td>
            </tr>
            }
        @Html.Raw("</table>")
    }
4

1 に答える 1

2

これはこのように見えるはずです

<table id='myTable' border='1'>
@foreach (var sessionTime in Model.SessionsByTime)
{ 
    <tr>
      <td>@sessionTime.StartTimeFriendly</td>
      <td></td>
    </tr>
    <table>
        @foreach (var session in sessionTime.sessionsResults)
        {
        <tr>
            <td width="300"></td>
            <td width="300">@session.Title</td>
        </tr>
        }
    </table>
}
</table>

html タグでラップされていないテキストを表示する必要がある場合は、次を使用する必要があります@:

@foreach(var s in list) {
    @: hello there @s
    <text>this also work instead of @: and is usuful
    when you need more than one line
    </text>
}

@:html タグ内ではなくコード ブロック内にいる場合、Razor はコードを書いているだけであると想定します<text>

于 2013-01-23T23:07:11.820 に答える