2

私はmvcから始めたばかりで、次のコードがあります。

@model AzureDemo.Models.User

@{
    ViewBag.Title = "Interests";
}

<h2>Interests</h2>

<p>
    @Html.ActionLink("Logout", "Logout")
</p>
<table>
    <tr>
        <th>
            Interests
        </th>
    </tr>

@foreach (var interest in Model.Interests) {
     <tr>
         <td>
            @Html.Display(interest)
        </td>
        //Tried like this
        <td>
            @Html.Display("id", interest.ToString())
        </td>
    </tr>
}

</table>

UserのInterestsプロパティは、単に文字列のリストです。ユーザーのテーブルに各関心を表示しようとしています。また、「test」のような文字列をHtml.Displayに配置するか、ToString()を使用してみましたが、まだ何もありません。

4

2 に答える 2

4

表示テンプレートを使用して、ビュー内のすべてのforeachループを削除することをお勧めします。

@model AzureDemo.Models.User

@{
    ViewBag.Title = "Interests";
}

<h2>Interests</h2>

<p>
    @Html.ActionLink("Logout", "Logout")
</p>
<table>
    <thead>
        <tr>
            <th>
                Interests
            </th>
        </tr>
    </thead>
    <tbody>
        @Html.DisplayFor(x => x.Interests)
    </tbody>
</table>

次に、Interestsコレクションの要素ごとに自動的にレンダリングされる対応する表示テンプレートを定義します(~/Views/Shared/DisplayTemplates/Interest.cshtml):

@model AzureDemo.Models.Interest
<tr>
    <td>
        @Html.DisplayFor(x => x.Text)
    </td>
</tr>
于 2013-02-26T13:46:41.847 に答える
4

このようなモデルアイテムを直接使用できます

@foreach (var interest in Model.Interests) {
 <tr>
     <td>
        @interest
    </td>
    // or this 
    <td>
        @interest.ToString()
    </td>
</tr>
}

または、ビューにhtmlコードを表示する場合、これはより安全です

@foreach (var interest in Model.Interests) {
 <tr>
     <td>
        @Html.Raw(interest)
    </td>
</tr>
}

また、この機会に感謝します;)

于 2013-02-26T13:44:28.470 に答える