2013-02-09 4 views
0

Я знаю, что есть много сообщений, но просто я не могу понять, что я делаю неправильно в автозаполнении.MVC autocomplete не работает

У меня есть ProductController как

public JsonResult AutocompleteMethod(string searchstring) //searchString null here 
     { 
       Product ob=new Product(); 
       List<Product> newLst = ob.GetProducts(); 
       var suggestions = from s in newLst select s.productName ; 
       var namelist = suggestions.Where(n=>n.StartsWith(searchstring)); 
       return Json(namelist, JsonRequestBehavior.AllowGet); 
     } 

В связи у меня есть:

<p> 
     Find by name:<%: Html.TextBox("Txt") %> 
    </p> 

    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" /> 
    <script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script> 
    <script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js" type="text/javascript"></script> 


    <script type="text/jscript"> 
     $(function() { 
      debugger; 

      $('#Txt').autocomplete({ source: '/Product/AutocompleteMethod' }); 

     }); 
    </script> 

Но всегда SearchString находится в функции контроллера NULL.

Вы можете понять, что является ошибкой?

ответ

1

AFAIK параметр называется term, не searchstring, так:

public ActionResult AutocompleteMethod(string term) 
{ 
    List<Product> newLst = new Product().GetProducts(); 
    var namelist = 
     from p in newLst 
     where p.StartsWith(term) 
     select new 
     { 
      value = p.Id, // you might need to adjust the Id property name here to match your model 
      label = p.productName 
     }; 
    return Json(namelist, JsonRequestBehavior.AllowGet); 
} 

Кроме того, я очень сомневаюсь, что productName это свойство, которое автозаполнения плагин будет когда-либо узнать. Вы можете попробовать использовать value и label, как показано в проекции, которую я выполнил в моем примере.

+0

спасибо очень nuch.It работал. –

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