2013-03-15 27 views
0

我剛將自動完成功能添加到視圖中。它不工作,當我把焦點放在文本框上並鍵入一個字母時,什麼也沒有顯示出來。我不知道,以我做錯了什麼,但這裏是代碼:自動完成不能在視圖中工作

引用jQuery的文件:

<script src="@Url.Content("~/Scripts/jquery-1.8.3.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-ui.js")"  type="text/javascript"></script> 

查看:

$(function() { 
    $("#rootcause").autocomplete({ 
     source: function (request, response) { 
      alert("x"); 
      $.ajax({ 
       url: "/ServiceEntry/FindRootCause", 
       type: "POST", 
       dataType: "json", 
       data: { 
        searchText: request.searchText, 
        maxResult: 10 
       }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { 
          label: item.FullName, 
          value: item.RootCauseName, 
          id: item.Id 
         } 
        })) 
       } 
      }) 
     }, 
     select: function (event, ui) { 
      alert(ui.item 
       ? ("You picked '" + ui.item.label + 
        "' with an ID of " + ui.item.id) 
       : "Nothing selected, input was " + this.value 
      ); 
     } 
    }); 
}); 
<div class="bodyContent"> 
    <span class="leftContent">@Html.Label("Root Cause")</span> 
    <span class="rightContent"> 
     <input id="rootcause" type="text" /> 
    </span> 
</div> 

控制器操作:

[HttpPost] 
public JsonResult FindRootCause(string searchText, int maxResult) 
{ 
    var result = RunLog.Domain.Lists.GlobalList.GetRootCause(searchText, maxResult); 
    return Json(result); 
} 

public static List<RunLog.Domain.Entities.RootCause> GetRootCause(string search, int maxResult) 
{ 
    //List<String> list = new List<String>(); 

    EFDbContext db = new EFDbContext(); 

    var list = (from rc in db.RootCause 
       where rc.RootCauseName.Contains(search) 
       orderby rc.RootCauseName 
       select rc).ToList(); 

    return list.Take(maxResult).ToList(); 
} 

回答

0

嘗試調試無論你打的動作或不 使用這些

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" /> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $("#brandname").autocomplete({ 
      source: "/CAdmin/Stores/Search", 
      minLength: 1, 
      select: function (event, ui) { 
       if (ui.item) { 
        alert(ui.item.value); 
        alert(ui.item.id); 
       } 
      } 
     }); 
    }); 
</script> 

和控制器的功能。

public JsonResult Search(string term) 
    { 
     var suggestions = Uow.BrandRepository.All.Where(c => c.BrandName.Contains(term)); 
     var list = suggestions.Select(i => new { id = i.BrandID, value = i.BrandName }).Take(10).ToList(); 
     var json = Json(list, JsonRequestBehavior.AllowGet); 
     return json; 
    } 
+1

這並沒有提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – VladL 2013-03-15 18:37:02

+0

沒有它根本沒有觸及動作 – 2013-03-15 18:46:26

+0

我甚至在頁面中放置了一個靜態列表,這也行不通。我想我引用了正確的JS文件 – 2013-03-15 18:47:10