簡體   English   中英

將字符串列表添加到視圖模型列表

[英]add a string list to a viewmodel list

public ActionResult LatestNews()
{
    using (NDTMS2UtilsEntities newsEntities = new NDTMS2UtilsEntities())
    {
        var newsItems = newsEntities.News.OrderByDescending(ni => ni.DateCreated).Take(5);

        int n = 0;
        var urlList = new List<string>();
        var newsModel = new List<NewsManagerViewModel>();

        while (n < newsItems.Count())
        {
            string newsUrl =
                new Uri(Request.Url.Scheme + "://" + Request.Url.Host + ":3153/News/Index/" + n).ToString();

            urlList.Add(newsUrl);

            n++;
        }
        newsModel = newsItems.Select(item => new NewsManagerViewModel()
        {
            Title = item.Title,
            NewsContent = item.NewsContent, 
            DateCreated = (DateTime) item.DateCreated
        }).ToList();

        return PartialView(newsModel);
    }
}

上面的代碼創建了按日期降序排列的前5個新聞項的列表,我創建了兩個列表,一個是稱為urlList的URL列表,另一個包含了稱為newsModel的新聞項。

urlList是一個字符串列表, newsModelNewsManagerViewModel的列表,在每個列表中恰好有5個元素。

我正在尋找一種組合這兩個列表的方法,以便每個URL與每個新聞項匹配。

當前,如果我使用newsModel.AddRange(urlList)合並列表,則所有新聞項的末尾(4)都具有相同的ID,而我的要求是第一個新聞項的ID為0,最后一個新聞的ID為4。

任何建議將不勝感激。

除了分別創建它們,你可以在一個單一的一次性創建for

public ActionResult LatestNews()
{
    using (NDTMS2UtilsEntities newsEntities = new NDTMS2UtilsEntities())
    {
        var newsItems = newsEntities.News.OrderByDescending(ni => ni.DateCreated).Take(5).ToList();

        var newsModel = new List<NewsManagerViewModel>();

        for(int n = 0; n < newsItems.Count(); n++)
        {
            string newsUrl = new Uri(Request.Url.Scheme + "://" + Request.Url.Host + ":3153/News/Index/" + n).ToString();
            var item = newsItems[n];
            var newsManagerModel = new NewsManagerViewModel()
            {
                Title = item.Title,
                NewsContent = item.NewsContent, 
                DateCreated = (DateTime) item.DateCreated,
                NewsUrl = newsUrl // add the url
            }
            newsModel.Add(newsManagerModel)
        }

        return PartialView(newsModel);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM