模型中的嵌套列表以及查看和存储数据

时间:2017-06-14 09:14:04

标签: c# asp.net

很抱歉,如果这是一个简单的问题,但是如果我想在模型中有一个列表,稍后访问并设置列表的值?

说我的主模型看起来像这样:

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;

的定义

2 个答案:

答案 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