Использование цикла для создания нескольких выпадающих списков для использования разных списков - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь создать несколько выпадающих списков для таких компонентов, как это:

if (Model.FilaChamado.CamposComboBox != null)
    {
        for (var i = 0; i < Model.FilaChamado.CamposComboBox.Count; ++i)
        {
            var lista = Model.FilaChamado.CamposComboBox[i].Itens;
            <div class="row">
                <div class="col-sm-6">
                    <label>@Model.FilaChamado.CamposComboBox[i].Nome</label>
                    @Html.DropDownListFor(x => m => m.CamposPreenchidosComboBox[i], new SelectList(lista), "Selecione", new { @id = "DDLUf", @class = "form-control field" })
                    @Html.HiddenFor(m => m.FilaChamado.CamposComboBox[i].Nome)
                </div>
            </div>

        }
    }

Каждый dropdownlistfor использует список объектов, хранящихся внутри Model.FilaChamado.CamposComboBox[i].Itens. Каждый объект определяется так:

 public class ItemCombobox
    {
        public int Id { get; set; }
        public string Descricao { get; set; }
    }

Но я получаю сообщение об ошибке «Аргументы типа для метода не могут быть выведены из использования»:

The type arguments for method 'System.Web.Mvc.Html.SelectExtensions.DropDownListFor<TModel,TProperty>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TProperty>>, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>, string, object)' cannot be inferred from the usage.

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 23 апреля 2019

Попробуйте сделать список просто списком строк

var lista = Model.FilaChamado.CamposComboBox[i].Itens.Select(i => i.Descricao);

и сделайте выпадающий список привязанным к строкам

@Html.DropDownListFor(x => m => m.CamposPreenchidosComboBox[i].Name, new SelectList(lista), "Selecione", new { @id = "DDLUf"+i.ToString(), @class = "form-control field" })

Убедитесь, что @Id должен быть уникальным длякаждый комбинированный список, хотя я бы порекомендовал не устанавливать его вообще, поскольку он может связываться с привязкой ASP.NET при наличии списков комбинированных списков.Может быть, оставить @Id вне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...