asp.net mvc4 jquery ui autocomplete无法正常工作

时间:2013-09-15 23:00:54

标签: asp.net-mvc jquery-ui autocomplete

我想在asp.net mvc4 app中使用自动完成小部件。我能够调用该操作来获取控制器的autcompletition值列表。不幸的是,我无法将其添加到建议列表中。我认为.map(自动完成ajax调用的成功部分中的数据,函数(item)不起作用。但我真的不知道为什么。我确信所有脚本和css都是corectly加载。我说明控制器动作返回建议列表,也是视图中的脚本和来自firebug的响应。我也在尝试jqueryui页面的演示示例并且它正在工作,但不知何故它对我返回的数据不起作用。有人能帮助我并告诉我原因吗?谢谢你提前。

控制器中的操作:

public ActionResult GetCities(int RegionId, string Name)
{
        var ret = db.Cities.Where(c => c.RegionId == RegionId &&
            c.Name.Contains(Name)).Select(a => new{ CityId = a.CityId, Name = a.Name});
        return Json(ret);
 }

视图中的脚本:

<script type="text/javascript">
$(function() {
    $("#City").autocomplete({
        source: function(request, response) {

        $.ajax({
           url: "@Url.Action("GetCities")",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
              method: "POST",
              data: "{'RegionId': " + $("#Region").val() + ", 'Name': '" + request.term + "'}",

              success: function (data) {
                  response( $.map( data, function( item ) {
                      return {

                          label: item.Name,
                          value: item.Name
                      }
                  }));
              },

              error: function(XMLHttpRequest, textStatus, errorThrown) {
                  alert(textStatus);
              }
          });
},
        minLength: 2
    });
});

回应(来自萤火虫)

[{"CityId":16,"Name":"Kordíky"},{"CityId":94,"Name":"Korytárky"}]

2 个答案:

答案 0 :(得分:0)

所以我发现它工作正常,唯一的问题是,我在visual studio中有断点,这个断点正在压制自动完成建议列表。

答案 1 :(得分:-1)

对于Mvc Artitecture,你必须删除已经imbended @ Scripts.Render(&#34;〜/ bundles / Jquery&#34;)和@ Scripts.Render(&#34;〜/ bundles / Jqueryval&#34;) 最后的所有.cshtml文件,以及视图/共享/ _layout.cshtml 结束并把我们的jaquery合适的文件放在他的合适的.cshtmls文件头上...然后让我们享受。