как привязать динамический выпадающий список через ajax в mvc

#javascript #jquery #ajax #asp.net-mvc

#javascript #jquery #ajax #asp.net-mvc

Вопрос:

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

 public class Ipcell
{ 
public List<ddlupc> upcList { get; set; }
}
 public class ddlupc
{
     public string UscCode { get; set; }
    public string UscDesc { get; set; }
}
  

функция, в которой выпадающий список генерируется динамически при нажатии кнопки добавления

  function insRow() {                
  i  ;
  let newRowContent = "<tr>"
   "<td> <select name='upclist' class='form-control' id='upcList"   i  "'><option selected='selected'>Select</option></select></td>"
 "<td><input type='button' style='margin-left:2%;' value='Add' id='abc' name='grdbtn'  class='btnrowvalue3' onclick='insRow()' /></td>"
                                       "</tr>";
 $("#ipcelltbll tbody").append(newRowContent);
                if (i>0) {
                    $.ajax({  
                        url: "../Home/GetupcData",  
                        datatype: "JSON",  
                        type: "Get",  
                        success: function(data) {  
                            debugger;  
                            for (var j = 0; j < data.upcList.length; j  ) { 
 var opt = new Option(data.upcList[i]); 
                                var tr = $('input[name="grdbtn"]:click').closest('tr');
                                tr.find('select[name="upclist"]').append(opt);
 }  
                        }  
                    });  
                }
  

Я застрял в var opt = new Option(data.upcList[i]); том, что не получаю точного синтаксиса, как сделать
ошибку получения: VM428: 1 Неперехваченная ошибка типа: не удалось создать ‘Option’: Пожалуйста, используйте оператор ‘new’, этот конструктор объектов DOM не может быть вызван как функция.
значения, возвращаемые из кода контроллера

  public JsonResult GetupcData()
  {
  List<Ipcell> result1 = new List<Ipcell>();
            conn.Open();
            string qry1 = "select IUM_USC_CODE,IUM_USC_DESC from V_IP_USC_MAST order by IUM_USC_CODE";
            OracleCommand command1 = new OracleCommand(qry1, conn);
            OracleDataReader reader1 = command1.ExecuteReader();
            List<ddlupc> objlist = new List<ddlupc>();
            Ipcell member1 = new Ipcell();
            while (reader1 != null amp;amp; reader1.Read())
            {
                objlist.Add(new ddlupc { UscCode = reader1[0].ToString(), UscDesc = reader1[0].ToString()   ' '   '-'   ' '   reader1[1].ToString() });
                result1.Add(member1);
            }
            member1.upcList = objlist;
            conn.Close();
            Ipcell ipcl = new Ipcell();
            ipcl.upcList = result1[0].upcList;
            ipcl.CaseId = null;
            return Json(ipcl, JsonRequestBehavior.AllowGet);
        }
  

моя задача — привязать значения в выпадающем списке.

Ответ №1:

в разделе Ajax изменилось ли следующее

 $.ajax({  
                        url: "../Home/GetupcData",  
                        datatype: "JSON",  
                        type: "Get",  
                        success: function(data) {  
                            debugger;  
                            var s = '<option value="-1">Please Select</option>';                            
                                for (var k = 0; k < data.upcList.length; k  ) {  
                                    s  = '<option value="'   data.upcList[k].UscCode   '">'   data.upcList[k].UscDesc   '</option>';  
                                }  
                                $("#upcList" i "").html(s); 
                        }  
                    });