0

そこにはたくさんの投稿があることは知っていますが、オートコンプリートで何が間違っているのかわかりません。

私は次のような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>

ただし、常にSearchStringNULLコントローラー関数にあります。

何が間違っているか分かりますか?

4

1 に答える 1

1

私の知る限り、パラメーターは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

于 2013-02-09T15:38:09.247 に答える