gpt4 book ai didi

javascript - 无法使用 Ajax 将数据列表从 Controller 返回到 View 中的下拉列表。我收到未定义的未定义错误

转载 作者:行者123 更新时间:2023-11-30 19:36:47 25 4
gpt4 key购买 nike

我正在尝试使用 Ajax 调用从 Controller 恢复下拉列表的值列表,并将数据返回到成功方法。但是我在下拉列表中看不到文本或值。

这是我的 Controller 代码,在底部,我正在返回 listofiteam 以查看。

        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);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

<div class="col-md-10">
@Html.DropDownListFor(m => m.ScheduledTime,new List<SelectListItem>
{
new SelectListItem{Text="09:00 AM",Value="09:00"},
new SelectListItem{Text="10:00 AM",Value="10:00"},
new SelectListItem{Text="11:00 AM",Value="11:00"},
new SelectListItem{Text="12:00 AM",Value="12:00"},
new SelectListItem{Text="13:00 PM",Value="13:00"},
new SelectListItem{Text="14:00 PM",Value="14:00"},
new SelectListItem{Text="15:00 PM",Value="15:00"},
new SelectListItem{Text="16:00 PM",Value="16:00"},
new SelectListItem{Text="17:00 PM",Value="17:00"},
new SelectListItem{Text="18:00 PM",Value="18:00"},
new SelectListItem{Text="19:00 PM",Value="19:00"},
new SelectListItem{Text="20:00 PM",Value="20:00"},
new SelectListItem{Text="21:00 PM",Value="21:00"},
new SelectListItem{Text="22:00 PM",Value="22:00"}

}, "--Select start time--", new { @class = "form-control", id="stime" })
@Html.ValidationMessageFor(model => model.ScheduledTime, "", new { @class = "text-danger" })
</div>

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

这是 View 中的代码,我试图用 listofiteam 中的文本对象的值填充下拉值

          $.ajax({
url: '@Url.Action("checkavailabletime","customer")',
data: { sdate: scheduledate, dvalue: duration, tvalue: TrainerId },
type: "POST",
success: function (value) {
console.log(value);
alert();
$("#stime").empty();
$.each(value, function (key, value) {
alert(key.text + value.value);
$('#stime')
.append($("<option></option>")
.attr("value", key)
.text(value));
});
},
error: function (result) {
alert("error" + result)
}
});

enter image description here

我希望使用来自 listofiteam 的文本对象更改下拉值,相反,我得到的是 [object object]、[object object] 的值

enter image description here

最佳答案

因为您返回 TextValue(第一个字符大写)

并且每个使用 2 个参数 indexitem,第二个参数 item 对象应该更改名称为 val 而不是与 value< 重复 每个循环中的变量。

val.Value设置为值属性,将val.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));
});

关于javascript - 无法使用 Ajax 将数据列表从 Controller 返回到 View 中的下拉列表。我收到未定义的未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55876130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com