Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用Ajax将控制器中的数据列表返回到视图中的下拉列表。我得到了未定义的错误_Javascript_Jquery_Json_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript 无法使用Ajax将控制器中的数据列表返回到视图中的下拉列表。我得到了未定义的错误

Javascript 无法使用Ajax将控制器中的数据列表返回到视图中的下拉列表。我得到了未定义的错误,javascript,jquery,json,ajax,asp.net-mvc,Javascript,Jquery,Json,Ajax,Asp.net Mvc,我试图使用Ajax调用从控制器中恢复下拉列表的值,它将数据返回到success方法。但我在下拉列表中看不到文本或值 这是我的控制器代码,在底部,我返回ListofTeam查看 List<SelectListItem> listoftime = new List<SelectListItem>(); if (duration == 1) { for(int i=9;i<23;i++)

我试图使用Ajax调用从控制器中恢复下拉列表的值,它将数据返回到success方法。但我在下拉列表中看不到文本或值

这是我的控制器代码,在底部,我返回ListofTeam查看

        List<SelectListItem> listoftime = new List<SelectListItem>();
        if (duration == 1)
        {
            for(int i=9;i<23;i++)
            {
                var st = date.Where(m => m.StartTime.Value.Hours == i);
                int countst = st.Count();

                if(countst==1)
                {
                    var et = st.Select(m => m.Endtime.Value.Hours).SingleOrDefault();
                    i = Convert.ToInt32(et);
                }

                if(countst==0)
                {
                    listoftime.Add(new SelectListItem
                    {
                        Text = "\"" + i + " to " + (i + 1) + "\"",
                        Value = i.ToString()
                    });
                }

            }
        }

        return Json(new { result = listoftime, status = "Success" }, 
          JsonRequestBehavior.AllowGet);
    }
List listoftime=new List();
如果(持续时间==1)
{
for(int i=9;i m.StartTime.Value.Hours==i);
int countst=st.Count();
如果(countst==1)
{
var et=st.Select(m=>m.Endtime.Value.Hours);
i=转换为32(et);
}
如果(countst==0)
{
添加(新建SelectListItem)
{
Text=“\”“+i+”到“+(i+1)+”\”,
Value=i.ToString()
});
}
}
}
返回Json(新的{result=listoftime,status=“Success”},
JsonRequestBehavior.AllowGet);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


@DropDownListFor(m=>m.ScheduledTime,新列表
{
新建SelectListItem{Text=“09:00AM”,Value=“09:00”},
新建SelectListItem{Text=“10:00 AM”,Value=“10:00”},
新建SelectListItem{Text=“11:00AM”,Value=“11:00”},
新建SelectListItem{Text=“12:00 AM”,Value=“12:00”},
新建SelectListItem{Text=“13:00 PM”,Value=“13:00”},
新建SelectListItem{Text=“14:00 PM”,Value=“14:00”},
新建SelectListItem{Text=“15:00 PM”,Value=“15:00”},
新建SelectListItem{Text=“16:00 PM”,Value=“16:00”},
新建SelectListItem{Text=“17:00 PM”,Value=“17:00”},
新建SelectListItem{Text=“18:00 PM”,Value=“18:00”},
新建SelectListItem{Text=“19:00 PM”,Value=“19:00”},
新建SelectListItem{Text=“20:00 PM”,Value=“20:00”},
新建SelectListItem{Text=“21:00 PM”,Value=“21:00”},
新建SelectListItem{Text=“22:00 PM”,Value=“22:00”}
},“--选择开始时间--”,新建{@class=“form control”,id=“stime”})
@Html.ValidationMessageFor(model=>model.ScheduledTime,“,new{@class=“text danger”})

因为您返回的
文本和
值(大写字母第一个字符)

每个使用2个参数
索引
,第二个参数项对象应将名称更改为
val
,而不是在每个循环中与
变量重复

val.Value
设置为Value属性,将
val.Text
设置为Text

使用value.result,因为MVC操作中返回的Json包含2个属性

你可以换成

$.each(value.result, function (key, val) {
                            alert(val.Text + val.Value);
                            $('#stime')
                                .append($("<option></option>")
                                    .attr("value", val.Value)
                                    .text(val.Text));
                        });
$。每个(值、结果、函数(键、值){
警报(val.Text+val.Value);
$('stime')
.append($(“”)
.attr(“值”,val.value)
.text(val.text));
});

谢谢Hien的快速回答。我添加了这段代码,但仍然在警报中得到了未定义的值,也在console.log中。下拉列表为空