javascript — цикл по списку ViewBag

#javascript #c#

#javascript #c#

Вопрос:

у меня есть код, который хранит данные в списке ViewBag, который будет отображаться в раскрывающемся списке выбора, проблема в том, что моя переменная x не распознается внутри цикла for, но когда я изменил ее на индекс 0, она работает. но когда я снова перешел на ‘x’, он отображает ошибку, и я не могу понять, почему.

ошибка: имя ‘x’ не существует в текущем контексте

    <script>

    
        var optionSy = '';
    
      
        {
            optionSy  =  '<select id="SyCode" class="term form-control" required> ';
            optionSy  = '<option value="" selected hidden>Select School Year</option>';
            for (var x = 0; x < "@ViewBag.SysCode.Count"; x  ) {
    
    
                optionSy  = '<option value="'   "@ViewBag.SysCode[x].SyCode"   '"> @ViewBag.SysCode[x].SyDesc </option>';
    
                console.log(optionSy)
    
            }
            optionSy  = '</select>';
        }
    
    
    </script>
  

Комментарии:

1. Javascript выполняется в браузере. C # выполняется на сервере. Кажется, вы пытаетесь написать цикл Javascript, но ваши данные находятся на стороне сервера.

2. Чтобы уточнить мой предыдущий комментарий: x является частью вашего клиентского кода Javascript. @ViewBag.SysCode[x].Sycode является частью вашего серверного кода C #. Поэтому x не существует в коде C #.

Ответ №1:

это нормально, что ваша переменная не будет распознана, поскольку она записана как строка

вместо того, чтобы использовать @ViewBag.SysCode[x].SyCode"

используйте значение вашей переменной @ViewBag.SysCode[" x "].SyCode"