【发布时间】:2021-01-28 09:33:06
【问题描述】:
您好,我正在尝试在主页上显示来自消息中心的前 5 条消息。但我不确定我做错了什么。我尝试从消息视图模型中获取消息,这是我的代码。
查看模型
@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)
【问题讨论】:
-
我应该在foreach中使用ViewBag而不是模型ViewBag MessageList吗?
-
memberHomepageVM.messageDetail和MemberMessageViewModel是什么关系?根据您的代码和描述,我想在 Homepage 控制器中,您想从 _messageService 中获取前 5 条 MemberMessageViewModel 消息,然后将其显示在 Homepage 视图页面上,对吗?如果是这样的话,当你从 _messageService 查询数据时,你可以使用
OrderByDescending()将消息按一列排序,然后使用Take(5)方法获取前 5 条消息,然后将其返回给查看页面并显示消息。
标签: javascript c# asp.net asp.net-core razor-pages