jquery - Autocomplete returning 500 error -


i having problem getting search form autocomplete in mvc4 razor, using jquery , ajax.

my html form

    @using (html.beginform())     {         @html.textbox("frienslist")         <input type="submit" value="go" />     } 

my js script

$(document).ready(function () {     $("#frienslist").autocomplete({         source: function(request,response) {             $.ajax({                 url: "/user/friendlist",                 type: "post",                 datatype: "json",                 data: { term: request.term },                 success: function (data) {                     response($.map(data, function (item) {                         return { label: item.label };                     }))                 }             })         },         minlength: 1,         delay: 1000     }); }) 

and controller

public actionresult friendlist(string term)     {         using (var db = new dbcontext())         {             var result = db.userprofiles                 .where(r => r.firstname.contains(term))                 .take(10)                 .select(r => new {label = r.firstname});              return json(result, jsonrequestbehavior.allowget);         }     } 

debugging code, can see enters action when type letter search box, returns correct data database, when ajax receives response, seems give 500 error.

i have ensured script being loaded after js bundles , added minlength , delay parameters suggested in similar question asked.

thanks help.

edit 1

i changed controller

public actionresult friendlist(string term)     {         using (var db = new dbcontext())         {             var result = db.userprofiles                 .where(r => r.firstname.contains(term))                 .take(10)                 .select(r => new {label = r.firstname});              var ser = new javascriptserializer();             var tests = ser.serialize(result);              return json(tests, jsonrequestbehavior.allowget);         }     } 

now when search load of li tags under searchbox. doesnt print text, seems repeating on isn't results

edit 2

i changed return

return json(tests, "label", jsonrequestbehavior.allowget); 

and following ajax

return { label: item}; 

and prints out each separate character in separate line, including json brackets

json method internally serializes data json format, dont have explicitly serialize data.

//var ser = new javascriptserializer();  //var tests = ser.serialize(result);  return json(result.tolist(),jsonrequestbehavior.allowget); 

the first draft did not work because result of type iqueryable<t> not data query expression. explicitly collect data query expression .tolist() method needs called, hence result.tolist().

hope helps.


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -