簡體   English   中英

如何在ASP.NET MVC 4中顯示從模型到另一個視圖的列表

[英]How do i show a list from a model to another View in ASP.NET MVC 4

我有一個Topic列表。 每個Topic都有一個Message列表。 當我單擊“詳細信息”時,我想打開一個新視圖,該視圖顯示主題中Message的列表。

我希望我需要修改以下行:(這是我到目前為止的內容)

@Html.ActionLink("Details", "Details", new { id=item.Id }, null)

Message可以通過item.Message訪問。

以及細節視圖中的第一行

@model IEnumerable<Models.TopicMessage>


這是我的主題視圖:

 @model IEnumerable<Models.Topic> <table> <tr> <th> @Html.DisplayNameFor(model => model.Name) </th> <th></th> </tr> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.Name) </td> <td> @Html.ActionLink("Details", "Details", new { id=item.Id }, null) </td> </tr> } </table> 

有很多方法可以做到這一點。 您可以使用Action方法直接執行控制器操作:

<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Name)
    </td>
    <td>
        @Html.Action("Details", "Details", new { id=item.Id })
    </td>
</tr>

或者,您可以使用DisplayFor此重載繞過控制器並直接呈現視圖:

<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Messages, "MessagesDetail")
    </td>
</tr>

或者,如果您將模板定義為默認的DisplayTemplate ,則可以執行以下操作:

<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Messages)
    </td>
</tr>

我通過制作一個同時包含liste和Id的somethingViewModel來解決此問題。 這樣,我可以將來自兩個不同位置的兩個信息包含在我可以在視圖中訪問的一個新對象中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM