我在视图中有一些数据要传递给子部分视图。部分数据是我想在局部视图中显示的日期列表。我很确定我无法将IEnumerable从一个视图传递到另一个视图(当我在控制器中尝试list时为null)。假设情况确实如此,是否有好的解决方法?
我想过将值连接成一个字符串,然后只是在控制器中解析该字符串。这似乎有点hackish,但我认为它会起作用。这样做有问题吗?还有更好的方法吗?
重新获取我在父视图中获得的数据似乎是一种耻辱。我希望还有另一种方法可以做到。
更新: 这是局部视图的模型:
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。
答案 0 :(得分:4)
如果我理解你的问题......
如果可以强类型化部分视图,则其模型可以是列表,您可以执行以下操作:
<%Html.RenderPartial("PartialView",myList);%>
否则,父视图可以将列表添加到其ViewData
,这可以从部分视图访问。
答案 1 :(得分:1)