在我当前的代码中,record
不会作为我可以迭代的列表返回。相反,System.Collections.Generic.List'1[ProjectName.BodyStyle]
函数会通过$.each
。
我需要的是我可以浏览的列表,然后从ID
和BodyStyle1
填充下拉列表。这是我的代码:
服务器端控制器:
Function Index(ByVal KovID As String) As List(Of BodyStyle)
Dim db As New Database1Entities
Dim record As New List(Of BodyStyle)
record = (From b In db.BodyStyles Where b.KovID = KovID Select b).ToList
Return record
End Function
Jquery的:
function ajaxSuccess(record) {
var drop2 = $('#Vehicle_BodyStyle_value');
drop2.get(0).options.length = 0;
drop2.get(0).options[0] = new Option("Please Select One", "-1");
$.each(record, function (index, item) {
alert(index);
alert(item);
drop2.get(0).options[drop2.get(0).options.length] = new Option(item.Display, item.Value);
});
}
function ajaxError() {
$('#Vehicle_BodyStyle_value').get(0).options.length = 0;
$('#Vehicle_BodyStyle_value').get(0).options[0] = new Option("Error!", "-1");
alert("Failed to load styles");
}
$('#Vehicle_KovId_value').change(function () {
var kovID = $(this).val();
var drop2 = $('#Vehicle_BodyStyle_value');
if (kovID != null && kovID != '') {
drop2.get(0).options.length = 0;
drop2.get(0).options[0] = new Option('Please Select One', '-1');
$.ajax({
type: "GET",
url: '/Ajax/Index',
async: false,
data: { KovID: kovID },
contentType: "application/object; charset=utf-8",
success: ajaxSuccess,
error: ajaxError
});
}
});
我需要做的是返回record
作为我可以通过的内容并从中获取信息。非常感谢任何帮助!
答案 0 :(得分:2)
如果您在服务器端代码中使用WebAPI方法,那么我希望它能为您序列化为JSON,但由于此处未知的原因似乎并未发生。不知怎的,List(Of BodyStyle)
只是被转换成一个字符串,这导致了那个输出。
我确信还有其他事情要做,以便使这个更加惯用的WebAPI功能,但在紧要关头,您总是可以使用the JavaScriptSerializer
object手动返回JSON序列化字符串。
您需要更改方法签名以返回字符串:
Function Index(ByVal KovID As String) As String
然后返回对象的序列化字符串:
Return New JavaScriptSerializer().Serialize(record)