很抱歉,如果这是一个简单的问题,但是如果我想在模型中有一个列表,稍后访问并设置列表的值?
说我的主模型看起来像这样:
public class StartPageModel : IPageViewModel<StartPage>
{
public IList<ListContent> ListContent { get; set; }
public StartPage CurrentPage { get; set; }
}
public class ListContent
{
public IList<ListElement> ArticleListContent { get; set; }
public IList<ListElement> InsightListContent { get; set; }
}
如何通过引用父模型将ArticleListContent列表设置为值?
public ActionResult Index(StartPage currentPage)
{
var model = new StartPageModel(currentPage);
model.ListContent.ArticleListContent = GetListContent(currentPage.ArticleCollection);
}
然而,这会返回错误:
IList不包含&#39; ArticleListContent&#39;
的定义
答案 0 :(得分:1)
我不确定您的ListContent
中是否需要StartPageModel
的集合,如果我错了,请更正我。
更改
public IList<ListContent> ListContent { get; set; }
到
public ListContent ListContent { get; set; }
如果已初始化ListContent
,则您的作业将有效。
答案 1 :(得分:1)
这是因为它引用了ListContent列表,而不是该列表中的单个项目。以下是一些例子:
var model = new StartPageModel(currentPage);
model.ListContent[0].ArticleListContent = GetListContent(currentPage.ArticleCollection); // Access first in list
model.ListContent[1].ArticleListContent = GetListContent(currentPage.ArticleCollection); // Access secondin list
model.ListContent.First().ArticleListContent = GetListContent(currentPage.ArticleCollection); // Access first in list using Linq