簡體   English   中英

MVC:如何將列表從一個視圖傳遞到另一個視圖?

[英]MVC: How can I pass a list from one view to another?

我有一些數據要傳遞給子局部視圖。 該數據的一部分是我想在部分視圖中顯示的日期列表。 我很確定我無法將IEnumerable從一個視圖傳遞到另一個視圖(當我嘗試在控制器中列表為null時)。 假設是這樣,有沒有好的解決方法?

我考慮過將值串聯成一個字符串,然后在控制器中解析該字符串。 這似乎有點駭人聽聞,但我認為它將起作用。 這樣做是否有問題? 有沒有更好的辦法?

不得不重新獲取我在父視圖中獲得的數據似乎很可恥。 我希望有另一種方法。

更新:這是局部視圖的模型:

public class SiteVisitDetailModel
{
    public String URL
    {
        get;
        set;
    }

    public List<DateTime> Dates
    {
        get;
        set;
    }
}

這是從父視圖添加部分視圖的代碼:

<% Html.Telerik().PanelBar().Name("PanelBar").HtmlAttributes(new { style = "padding-left: 0em;" }).Items(items =>
{
    foreach (var item in Model.Visits)
    {
        SiteVisitDetailModel model = new SiteVisitDetailModel();
        model.URL = item.Key;
        model.Dates = (from siteVisit in item
                             select siteVisit.Time).ToList();

        items.Add()
            .Text(item.Key.ToString() + " " + item.Count().ToString() + " visits")
            .LoadContentFrom("SiteViewDetail", "Report", model);        

    }
}).Render();

在SiteVisitDetail操作方法中,正確設置了model.URL,並且model.Dates為null。

如果我正確理解您的問題...

如果可以強類型化部分視圖,則其模型可以是列表,您可以執行以下操作:

<%Html.RenderPartial("PartialView",myList);%>

否則,父視圖可以將列表添加到其ViewData ,這可以從部分視圖訪問。

查看這篇文章,了解如何傳遞模型。

本質上,您應該可以將模型傳遞給包含列表的視圖。 那么您可以稍后擴展它。

將多個模型發送到單個視圖實例

暫無
暫無

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

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