将字符串列表添加到视图模型列表
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
是一个字符串列表,newsModel
是一个NewsManagerViewModel
列表,每个列表正好有5个元素。
我正在寻找一种组合这两个列表的方法,以便每个 URL 都与每个新闻项目相匹配。
目前,如果我使用 newsModel.AddRange(urlList)
组合列表,所有新闻项目在末尾都有相同的 ID (4),而我的要求是第一个新闻项目的 ID 为 0,最后一个为编号为 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);
}
}
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
是一个字符串列表,newsModel
是一个NewsManagerViewModel
列表,每个列表正好有5个元素。
我正在寻找一种组合这两个列表的方法,以便每个 URL 都与每个新闻项目相匹配。
目前,如果我使用 newsModel.AddRange(urlList)
组合列表,所有新闻项目在末尾都有相同的 ID (4),而我的要求是第一个新闻项目的 ID 为 0,最后一个为编号为 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);
}
}