嗨,我试着在主页上显示来自信息中心的前5条信息。但我不知道我做错了什么。我试图从message视图模型中获取消息,这是我的代码。
视图模型
@model Portal.ViewModel.MemberMessageViewModel
@foreach (var msg in Model.MessageList)
<div> @html.DisplayFor(modelItem => msg.CreatedOn) @html.DisplayFor(modelItem => msg.Subject) </div>MessageViewModel.cs
public class MemberMessageViewModel : BaseViewModel { public string Subject { get; set; } public string CreatedOn { get; set}
public List<MemberMessageViewModel> MessageList { get; set;}
}控制器
public async Task<IActionResult>
Homepage()
{
string MESSAGE_PANEL_NAME = _configuration.GetSection(“TemplateStrings”).GetSection(“TEMPLATE_MESSAGECENTER”).Value;
try{
memberHomepageVM.messageDetail = await _messageService.GetHomepageMessages(MESSAGE_PANEL_NAME, Lang);
}Cshtml
@awaitHtml.PartialAsync(“_message”, Model.messageDetail)发布于 2020-10-14 08:45:21
要显示前5条记录,我们应该使用"OrderByDescending()“对消息进行排序,然后使用"采取(5)”方法获取前5条消息。
请参考以下示例代码:
产出如下:

此外,还可以对视图页面中的消息进行排序和获取:
@model Test.Models.MemberMessageViewModel
@foreach (var msg in Model.MessageList.OrderByDescending(c => Convert.ToDateTime(c.CreatedOn)).Take(5))
{
<div>
@Html.DisplayFor(modelItem => msg.CreatedOn)
@Html.DisplayFor(modelItem => msg.Subject)
</div><br/>
}如果我误解了你的问题,请随便告诉我。
https://stackoverflow.com/questions/64345486
复制相似问题