【发布时间】:2010-01-10 17:13:18
【问题描述】:
我在一个视图中有一些数据,我想将这些数据传递给子部分视图。该数据的一部分是我想在部分视图中显示的日期列表。我很确定我不能将 IEnumerable 从一个视图传递到另一个视图(当我尝试控制器中的 list 为 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 action方法中,model.URL设置正确,model.Dates为null。
【问题讨论】: