在jQuery中迭代SelectList
本文关键字:SelectList 迭代 jQuery | 更新日期: 2023-09-27 18:09:27
在我的控制器中,我正在创建一个选择列表;
public string Ajax_GetUnusedDCList(Guid storeId)
{
DataRepository.Store thisStore = repo.Where(x => x.id == storeId).SingleOrDefault();
SelectList list = thisStore.GetStoreUnusedDCList("Store");
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(list);
}
然后在我的jQuery中,我尝试遍历每个项目并在此时警告值;
$.ajax({
url: "/Stores/Ajax_GetUnusedDCList",
type: 'POST',
data: { storeId: '041F0D0E-5AD3-4817-9604-3FD81F08BA9B' },
success: function (data) {
$(data).each(function (index, val) {
alert(val.Text);
});
}
});
但是我得到的错误是;
Microsoft JScript运行时错误:语法错误,无法识别表达式:[{"选择":假的,"文本":"9321","价值":零}]
Microsoft JScript运行时错误:'length'是null或不是一个对象
Microsoft JScript runtime error: 'undefined' is null or not an object
Microsoft JScript运行时错误:'matches'是null或不是对象
我要做的就是返回一个SelectList并填充一个下拉列表。
我认为你可以在不序列化的情况下发送SelectList,这样你就可以在客户端使用你的函数本身进行访问。
return Json(listObj,JsonRequestBehaviour.AllowGet);
您已经获得了作为字符串的数据,因此首先需要将数据转换为json对象。
尝试下面的代码在客户端将字符串转换为json。
success: function (data) {
var json = (typeof data) == 'string' ? eval('(' + data+ ')') : data;
$(json).each(function (index, val) {
alert(val.Text);
}); }