Этот ответ основан на предположении, что вы хотите создать два элемента select;один для отображения списка аэропортов, а второй список цен.(Это лучшее, что я могу сделать из вашего вопроса) Теперь, когда пользователь выбирает аэропорт, вы хотите, чтобы второй выбрал список цен, верно?
@if (Terminals == null)
{
<p><em>Loading...</em></p>
}
else
{
<select bind="@SelectedTerminalId">
<option value=@(0)></option>
@foreach (var Terminal in Terminals)
{
<option value="@Terminal.TerminalId">@Terminal.Name</option>
}
</select>
}
@if (SelectedTerminalId != default)
{
var prices = Terminal.Single(x => x.TerminalId == SelectedTerminalId).Prices;
<select bind="@SelectedPriceSettingId">
<option value=@(0)></option>
@foreach (var price in Prices)
{
<option value="@price.Id">@price.Name (@price.Value)</option>
}
</select>
}
@functions {
private static readonly List<Terminal> Terminals = new List<Terminal>{
new Terminal{
TerminalId = 1, Name = "NYC", Prices = new List<PriceSetting>
{
new PriceSetting{Id = 1, Name = "test1", Value = 104.13m},
new PriceSetting{Id = 2, Name = "test2", Value = 105.13m )
}
},
new Terminal{
TerminalId = 2, Name = "LHR", Prices = new List<PriceSetting>
{
new PriceSetting{Id = 3, Name = "test3", Value = 106.13m}
}
}
};
int _selectedTerminalId;
int SelectedTerminalId
{
get => _selectedTerminalId;
set
{
_selectedTerminalId = value;
SelectedPriceSettingId = default;
}
}
int SelectedPriceSettingId { get; set; }
}