简体   繁体   English

如何将模型项列表返回到ASP.NET Core SelectListItem?

[英]How to return a list of model items to an ASP.NET Core SelectListItem?

I have a model defined as: 我有一个模型定义为:

public class MessageModel
{
    private Dictionary<string, MessageAttributeValue> messageAttributes;

    /// <summary>
    /// This model class is used to store the contents of the SQS Message Responses for the ListAllTemplates command.
    /// It does not map into a physical database table, rather stored in memory for use by the DashboardController.
    /// </summary>
    public MessageModel() { }

    public MessageModel(string messageId, string body, Dictionary<string, MessageAttributeValue> messageAttributes, string receiptHandle)
    {
        MessageId = messageId;
        Body = body;
        this.messageAttributes = messageAttributes;
        ReceiptHandle = receiptHandle;
    }

    public string Message { get; set; }
    public string MessageId { get; set; }
    public string MessageHandler { get; set; }
    public string Body { get; set; }
    public string ReceiptHandle { get; set; }

    public List<SelectListItem> Messages { get; } = new List<SelectListItem>();
}

It is used to store SQS Message Responses and is referenced in my controller as follows: 它用于存储SQS消息响应,并在我的控制器中如下引用:

 public async Task<IActionResult> Index()
    {
        var models = new List<MessageModel>();
        await ListTemplatesAsync();
        await StartEnvironmentAsync();
        return View(models);
    }
 private async Task ListTemplatesAsync()
    {
        var response = await GetEnvironments.OnMessageReceiptAsync();
        var models = new List<MessageModel>();
        foreach (var msg in response)
        {
            models.Add(new MessageModel(msg.MessageId, msg.Body, msg.MessageAttributes, msg.ReceiptHandle));
        }
    }

I want to return a list of MessageIds from MessageModel which is holding the SQS responses. 我想从保存SQS响应的MessageModel返回一个MessageIds列表。

My view markup is as follows: 我的视图标记如下:

@model IEnumerable<MySite.Models.MessageModel>;
    }
    <form id="frmEnvironment" asp-controller="Dashboard" method="get">
          <select id="selTemplates" asp-items="Messages"></select>
          <button id="btnStart" role="button" class="btn btn-primary" type="button" title="Start"></button><br />
          <button id="btnStop" class="btn btn-primary" type="button" title="Stop"></button><br />
          <button id="btnTest" class="btn btn-primary" title="Test" type="button"></button><br />
   </form>

How do I ensure that a list of MessageModel items is returned in the select dropdown list? 如何确保在选择下拉列表中返回MessageModel项目列表?

you should fill your model , i think you return an empty model 您应该填写您的模型,我认为您会返回一个空模型

public async Task<IActionResult> Index()
{
        List<MessageModel> models =await ListTemplatesAsync();
        await StartEnvironmentAsync();
        return View(models);
}
private async Task<List<MessageModel>> ListTemplatesAsync(List<MessageModel> models)
{
    var response = await GetEnvironments.OnMessageReceiptAsync();
    List<MessageModel> models = new List<MessageModel>();
    foreach (var msg in response)
    {
        models.Add(new MessageModel(msg.MessageId, msg.Body, msg.MessageAttributes, msg.ReceiptHandle));
    }
    return models ;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在 ASP.NET Core MVC 中如何插入返回 List 的方法的返回值<selectlistitem>在 Session</selectlistitem> - In ASP.NET Core MVC how insert the return value of a method that returns List<SelectListItem> in a Session 如何在 Asp.Net Core MVC 的 ExceptionFilter 中返回带有 model 的视图 - How return View with model in the ExceptionFilter in Asp.Net Core MVC 如何根据 asp.net 内核中的项目列表过滤实体 - How to filter entities based on list of items in asp.net core Asp.net 如何从 Model 中删除特定列表项 - Asp.net how to Delete specific List Items from a Model Asp.net核心列表 <enum> 在模型中 - Asp.net Core List<enum> in model 为什么我的 SelectListItem 无法编辑 ASP.NET Core MVC - Why my SelectListItem can not be edited ASP.NET Core MVC 在 ASP.NET Core 中提交表单后如何保持 SelectListItem 值被选中? - How to keep SelectListItem value selected after submitting form in ASP.NET Core? 具有下拉列表的Asp.Net MVC和SelectListItem协助 - Asp.Net MVC with Drop Down List, and SelectListItem Assistance ASP.NET 核心MVC列表<model> .包含(模型)</model> - ASP.NET Core MVC List<Model>.Contains(Model) ASP.NET Core 2.1 Razor 页面返回带模型的页面 - ASP.NET Core 2.1 Razor page return Page with model
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM