У меня есть метод веб-сервиса, как показано ниже:
<WebMethod()> _
Public Function TravelMeansList(ByVal prefix As String) As List(Of HRM_travellingMeans)
Dim ctx As New HRMEntities
Dim query = From c In ctx.HRM_travellingMeans Where c.name.ToUpper.StartsWith(prefix) Select c
If query.Count > 0 Then
Return query.ToList()
Else
Return Nothing
End If
End Function
И мой сценарий, как показано ниже
<script type="text/javascript">
$(document).ready(function () {
$("#<%=travelmeansTextBox.ClientID %>").autocomplete({
source: function (request, response) {
$.ajax({
url: '<%=ResolveUrl("../../services/ApplicationService.asmx/TravelMeansList") %>',
data: "{ 'prefix': '" + request.term + "'}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return Json({
value: item.name
})
}))
},
error: function (response) {
alert(response.responseText);
},
failure: function (response) {
alert(response.responseText);
}
});
},
select: function (e, i) {
},
minLength: 1
});
});
</script>
Моя проблема в том, что всякий раз, когда я пытаюсь ввести любую букву в свое текстовое поле, я получаю эту ошибку
Обнаружена циклическая ссылка при сериализации объекта типа \ u0027System.Data.Metadata.Edm.AssociationType \ u0027. "," StackTrace ":" в System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal (Object o, StringBuilder sb, Глубина Int32, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember) \ r \ n в System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue (Object o, StringBuilder sb, глубина Int32, Hashtable objectsInUse, Serialization currentMmbere, serializationfoormat n в System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject (Object o, StringBuilder sb, глубина Int32, Hashtable objectsInUse, SerializationFormat serializationFormat) \ r \ n в System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue, Object sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember) \ r \ n в System.Web.Script.Seri alization.JavaScriptSerializer.SerializeValue (Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember) \ r \ n в System.Web.Script.Serialization.JavaScriptSerializer.SerializeEnumerable ......
Что я делаю не так.
1 ответ
Проблема может заключаться в сериализации JSON объекта Entity Framework. Обратитесь к этой статье:
Автор предлагает использовать объект JSONResult, если вы используете ASP.NET MVC, хотя я не уверен, насколько хорошо это будет работать с jQuery Autocomplete.
Похожие вопросы
Новые вопросы
asp.net
ASP.NET - это среда разработки веб-приложений Microsoft, которая позволяет программистам создавать динамические веб-сайты, веб-приложения и веб-службы. Полезно использовать этот тег в сочетании с тегом типа проекта, например, [asp.net-mvc], [asp.net-webforms] или [asp.net-web-api]. НЕ используйте этот тег для вопросов о ASP.NET Core - используйте вместо этого [asp.net-core].