Razor Pages — как добавить данные модели к жестко запрограммированным параметрам выбора, если значение совпадает

У меня есть жестко закодированные параметры выбора на моей странице Razor.

Вот выбранная часть:

<div class = "form-group col-md-5 input-group">
                        <select class = "custom-select" id = "validationCustom04" required>
                            <option selected disabled value = "">Choose...</option>
                            <option value = "000000001585">2100 ZA</option>
                            <option value = "000000001570">10 TL'lik Steam Bakiyesi</option>
                            <option value = "000000001696">4300 ZA</option>
                            <option value = "000000001572">400 Riot Points</option>
                            <option value = "000000001573">840 Riot Points</option>
                            <option value = "000000001574">Gameforge 6 TRY E-Pin</option>
                            <option value = "000000001575">50 Hükümdarlık</option>
                            <option value = "000000001582">10 TL Razer Gold Pin</option>
                            <option value = "000000001583">25 TL Razer Gold Pin</option>
                            <option value = "000000001705">20 TL'lik Steam Bakiyesi</option>
                            <option value = "000000001706">9000 ZA</option>
                            <option value = "0187022">10 TL Razer Gold Pin</option>
                            <option value = "0186479">10 TL Steam Cüzdan Kodu</option>

                        </select>
                        <div class = "invalid-feedback">
                            Please select a game.
                        </div>


                    </div>

Вот пример модели, которую я использую:

public class GameBanksDto
    {
        [DisplayName("Product Code")] public string ProductCode { get; set; }

        [DisplayName("Description")] public string ProductDescription { get; set; }

        [DisplayName("Unit Price")] public double UnitPrice { get; set; }
        [DisplayName("Stock Quantity")] public int Quantity { get; set; }
    }

Вот список, который я передаю на страницу Razor:

var gamestock = await _context.GameBanks
                .Where(m => m.used == 0)
                .Where(n => n.status == 0)
                .Where(p => p.status == 2)
                .GroupBy(g => new
                {
                    g.ProductCode,
                  
                })
                .Select(gcs => new GameBanksDTO
                {
                    ProductCode = gcs.Key.ProductCode,
                    Quantity = gcs.Count(g => g.Quantity)
                })
                .ToListAsync();

Можно ли добавить количество к соответствующим жестко закодированным значениям в параметрах выбора? (Я предполагаю, что 000000001585 соответствует коду продукта модели.)

<option value = "000000001585">2100 ZA *Stock Quantity:100*</option>

Заранее спасибо.

Когда вы хотели добавить соответствующий параметр «Количество для выбора»? Приложение запускается или когда вы выбираете элемент? И почему вы это сделали? Я думаю, независимо от того, должно это делать или нет, это сложная вещь, которая снижает производительность.

Rena 14.12.2020 06:39

Поместите свои «жестко закодированные» значения в список или словарь или что-то еще, а затем выведите их на странице Razor с помощью @foreach()

Captain Kenpachi 14.12.2020 09:01
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
216
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете изменить свое жестко закодированное значение с помощью jQuery, как показано ниже:

<script>
 $(function () {
    $("#validationCustom04 > option").each(function () {
        var count = '@Model.GameBanksDto.Count';
        if (count != '') {
            var item = true;
            @for (var i = 0; i < Model.GameBanksDto.Count; i++) {
                    @: item = `@Model.GameBanksDto[i].ProductCode`;
                    @:if (item == this.value)
                    @: {
                         @: var value = this.text;
                         @: $(this).text(value +" Stock Quantity: "+ '@Model.GameBanksDto[i].Quantity')
                    @:}
            }
        }
    });

})
</script>

Внутренний код:

public class IndexModel : PageModel
{
    public List<GameBanksDto> GameBanksDto { get; set; }
    public void OnGet()
    {
       //for easy testing I hard coded the data
        GameBanksDto = new List<GameBanksDto>()
        {
            new GameBanksDto(){ProductCode = "000000001585",Quantity=12},
            new GameBanksDto(){ProductCode = "000000001570",Quantity=34},
            new GameBanksDto(){ProductCode = "000000001696",Quantity=32},
            new GameBanksDto(){ProductCode = "000000001572",Quantity=33}
        };

    }
}

Результат:

Другие вопросы по теме