[英]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.