Фильтр раскрывающегося списка Master / Detail с использованием Lambda в ASP.NET - PullRequest
1 голос
/ 08 июля 2019

Я хотел бы заполнить раскрывающийся список на основе выбора, выбранного в предыдущем поле.

В настоящее время у меня есть 2 списка из моего ViewModel, например, так:

Manufacturers = context.ManufacturersTable.OrderBy(x => x.ManufacturerName).ToList(),
Models = context.ModelsTable.OrderBy(x => x.ModelName).ToList(),

Оба списка заполняются с использованием таблицы SQL с собственной моделью данных.

В таблице Models у меня есть столбец для ManufacturerID, который соответствует столбцу ManufacturerID в таблице Manufacturers.

Я бы хотел заполнить список Models на основе выбора списка Manufacturers, чтобы отображались только модели, связанные с выбранным производителем.

Как бы я это сделалиспользуя Lambda?

Я играл с Where and Select, но не смог добраться туда.

EDIT:

Вот таблицы

MANUFACTURER   |   MANUFACTURER_ID
Manufacturer 1     GUID1
Manufacturer 2     GUID2

MODEL   |    MODEL_ID    |    MANUFACTURER_ID
Model 1 | GUID1          |    GUID1
Model 2 | GUID2          |    GUID2
Model 3 | GUID3          |    GUID1
Model 4 | GUID4          |    GUID1

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Когда вы изменяете выбор поля производителя, вызывайте метод контроллера с идентификатором производителя в качестве параметра, который возвращает:

context.ModelsTable
    .Where(x => x.ManufacturerId == manufacturerId)
    .OrderBy(x => x.ModelName)
    .ToList();

... затем обновите список выбора с результатом.

0 голосов
/ 08 июля 2019
context.ModelsTable.Where(x => x.ManufacturerId == value).OrderBy(x => x.ModelName).ToList()

Это не работает? Пройти изготовлениеId как value. Where Данные фильтра ключевых слов, но возвращает все столбцы из таблицы. С помощью Select вы можете выбрать, какие столбцы вы хотите вернуть. Вы можете использовать эти ключевые слова вместе.

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