2015-07-21 3 views
0

Я хочу сделать автозаполнение, когда я ввожу письмо. У меня есть база данных «ПОЛЬЗОВАТЕЛИ», и у нее есть имя. Когда я пытаюсь отправить текст, например, e , он должен показать «edgar, edwin, emir», но t ничего не показывает. ClientController здесь:Автозаполнение Текстовое поле с базой данных

public class ClientController : Controller 
{ 
    public JsonResult AutocompleteSuggestions(string searchstring) 
    { 
     ModelContext db = new ModelContext(); 

     var suggestions = from E in db.USERS 
          select E.Name; 


     var namelist = suggestions.Where(n => n.ToLower().Contains(searchstring.ToLower())); 

     return Json(namelist, JsonRequestBehavior.AllowGet); 
    } 
} 

index.cshtml здесь: здесь есть текстовое поле, и я посылаю клиента метод управления autocopleteSuggeston, но это не идти или оно не work.I добавить файл JQuery скрипт на cshtml, но он по-прежнему не работает ,

@using (Html.BeginForm()) 
{ 

    <p> 
     Name: @Html.TextBox("SearchString") 

     <input type="submit" value="Search" /> 
    </p> 
} 

<script type="text/javascript"> 
    window.jQuery(function() { 
     window.jQuery("#SearchString").autocomplete({ 
      source: "/Client/AutocompleteSuggestions", 
      minLength: 1, 
      select: function (event, ui) { 
       if (ui.item) { 
        window.jQuery("#SearchString").val(ui.item.value); 
        window.jQuery("form").submit(); 
       } 
      } 
     }); 
    }); 
</script> 

я добавить JQuery Где ошибка?

ответ

1

вам нужно добавить [HttpPost] перед методом JsonResult как это:.

[HttpPost] 
public JsonResult AutocompleteSuggestions(string searchstring) 
{ 
    ModelContext db = new ModelContext(); 

    var suggestions = from E in db.USERS 
         select E.Name; 


    var namelist = suggestions.Where(n => n.ToLower().Contains(searchstring.ToLower())); 

    return Json(namelist, JsonRequestBehavior.AllowGet); 
} 

как форма здесь представляется с использованием window.jQuery ("форма") представляет(), он вызывает сообщение Действие, поэтому вам нужно добавить [HttpPost] для захвата форм или любых действий в Post!

Изменить Просмотр кода для

@using(Html.BeginForm(null, null, FormMethod.Post, new{@id ="SearchForm"})) 
 
{ 
 

 
    <p> 
 
     Name: @Html.TextBox("SearchString") 
 

 
     <input type="submit" value="Search" /> 
 
    </p> 
 
}

$(function() { 
$("#SearchString").autocomplete({ 
    source: "/Client/AutocompleteSuggestions", 
    select: function(event, ui) { 
     $("#SearchString").val(ui.item.value); 
     $("#SearchForm").submit(); 
    } 
}); 
}); 
+0

@Otantik ли это решить проблему ?? –

+0

Нет. Это все еще не работает. @ Psylogic – Anivia

+0

это попало в контроллер ?? –

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