Как создать список выбора на лету с выбранным значением на основе свойства из запроса? - PullRequest
0 голосов
/ 17 октября 2019

Я создал метод, который возвращает IQueryable A

У меня есть список выбора (который я ограничил моделью класса A, я не хочу использовать модель представления здесь) и который необходимо запроситьдругая таблица B, чтобы получить этикетку. Я хочу создать список списков выбора с каждым выбранным значением на основе значения, полученного из запроса.

Например, в моей таблице A у меня есть

Id |CodeB 1 |30 2 |40 3 |30

В таблице B у меня есть

Код |Этикетка 30 |Автомобиль 40 |Велосипед

Я хочу отобразить в представлении, когда я получаю значения для A,

Id |SelectList (с выбранным значением) 1 |Автомобиль 2 |Велосипед 3 |Автомобиль

Попытка создания нового списка выбора. Сообщение = значение не может быть пустым. \ R \ nИмя параметра: querySource

Модели

public class A
    {
        [Key]
        public int Id{ get; set; }


[ForeignKey("B")]

public int CodeB {get;set;}

[NotMapped]
        public SelectList SelectLabelB { get; set; }

}

public class B
{
        [Key]
        public int Code { get; set; }

        public string Label {get;set;}


}

Контроллер

IQueryable<A> as = from a in _context.A
                                             select new A
                                             {
                                                 Id= a.Id,
                                                 CodeB=a.CodeB,

                                                 /*What to do here ? */
SelectLabelB = new 
            SelectList(_context.B.ToList()).Select(a=>a.Value == ld.CodeSourceAlimentation)
                                             };

Вид (модель IEnumerable)

@model IEnumerable<MyProject.Models.A>

<table>

@foreach (var item in Model)

        {
<thead>
        <tr>
          <th>
                @Html.DisplayNameFor(model => model.Id)
            </th>
<th>
                @Html.DisplayNameFor(model => model.SelectLabelB)
            </th>
</tr>
</thead>
<tbody>
        @foreach (var item in Model)
        {
        <tr>
  <td>
                <input type="number" value="@item.Id" disabled />
            </td>
<td>
            <select asp-for="labelB" class="form-control" asp-items="Model.??" ></select>

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