2015-10-20 4 views
1

Я успешно использует JQuery Ajax с получать и отправлять методы с Web APIJQuery автозаполнения посылает странные символы

Однако, теперь у меня есть задача, в которой мне нужно сделать автозавершения

смотрю на нескольких примерах, которые я получаю застрял с какой-то сумасшедший сгенерированного URL, который мне чужд

URL:

http://localhost:11974/GetPersonInfoFromRegister?term=ad&_=1445370940988 

Где находится термин "term"?
Где находится "1445370940988"?

HTML

input type="text" id="txtSearch" /> 

Jquery:

$(function() { 
    $('#txtSearch').autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: '/GetPersonInfoFromRegister', 
       type: 'GET', 
       cache: false, 
       data: request, 
       dataType: 'json', 
       success: function(json) { 
        // call autocomplete callback method with results 
        response($.map(json, function(name, val) { 
         return { 
          label: name, 
          value: val 
         } 
        })); 
       }, 
       error: function(XMLHttpRequest, textStatus, errorThrown) { 
        //alert('error - ' + textStatus); 
        console.log('error', textStatus, errorThrown); 
       } 
      }); 
     }, 
     minLength: 2, 
     select: function(event, ui) { 
      alert('you have selected ' + ui.item.label + ' ID: ' + ui.item.value); 
      $('#txtSearch').val(ui.item.label); 
      return false; 
     } 
    }); 
}); 
+0

Я считаю, что "термин = объявление" является одним из ключевых поиска в вашем поиске и «_ = 1445370940988 "- это фактический текст (возможно, номер объявления), отправленный с вашего ввода, где вы пытались реализовать автоматическое завершение. Короче говоря, это макет url. – DinoMyte

+0

Объявление действительно текст, который я набрал в текстовое поле, но 1445370940988 Я вообще не понимаю –

+0

text = "ad" очень расплывчато, чтобы использовать его в качестве текста поиска. В принципе, вы будете искать объекты в определенной категории (например, объявление) – DinoMyte

ответ

1

Я не делаю много с автозаполнением, но в части приложения, что я DO автозаполнение 1 с Угловым, но другой с jquery прокомментировал

Он работал нормально, прежде чем его прокомментировали.

Некоторые изменения для вас, чтобы заставить это работать.

  1. переход от GET к POST (я вспоминаю запрос и request.term выплевывая символы, которые веб-апи не хотел, и не делал механизм маршрутизации.
  2. просто обратите внимание на различные изменения, и это «должны» работать

    $(function() { 
    
    $("#TextBox1").autocomplete({ 
        source: function (request, response) { 
         $.ajax({ 
          url: '/GetPersonInfoFromRegister/'+request.term, 
          data: "{ 'id': '" + request.term + "' }", 
          dataType: "json", 
          type: "POST", 
          //type: "GET", 
          contentType: "application/json; charset=utf-8", 
          dataFilter: function (data) { return data; }, 
          success: function (data) { 
           response($.map(data, function (item) { 
            return { 
             value: item.YOURMODELPROPERTY 
    
            } 
           })); 
          }, 
          error: function (XMLHttpRequest, textStatus, errorThrown) { 
           console.log(textStatus); 
          } 
         }); 
        }, 
        minLength: 2 
    }); 
    

    });

я вписалась в моем коде с YOURS, но это должно быть близко

WEB API

[HttpPost] 
[Route("GetPersonInfoFromRegister/{id}")] 
public IEnumerable<MODELOFYOURS> GetPersonStuff(string id) // id matches Route 
{ 
    ..... 
    return _db.MODELOFYOURS.Where(m => m.PROPERTYOFYOURS.Contains(id)).ToList(); 

} 
+0

POST работал вместе с данными и сопоставлял все элементы item.exe и веб-api routing awesome –

+0

Добро пожаловать, сэр –

Смежные вопросы