2017-06-14 151 views
0

對不起,如果這是一個簡單的問題,但如果我想在模型中有一個列表,並且稍後訪問並設置列表的值?模型中的嵌套列表和查看和存儲數據

說我的主要模式是這樣的:

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 does not contain a definition for 'ArticleListContent'

+0

@霜這是什麼意思?這是一個編譯錯誤,使用不同的瀏覽器不會改變任何東西。 – CodeCaster

回答

1

我不知道你需要的ListContent集合在你StartPageModel,糾正我,如果我錯了。

變化

public IList<ListContent> ListContent { get; set; } 

public ListContent ListContent { get; set; } 

而且提供ListContent被初始化,您的任務將工作。

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