Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Asp.net Mvc中用于多个项目(如stackoverflow标记搜索部分)的自动完成文本框_Javascript_Jquery_Asp.net Mvc 4_Autocomplete - Fatal编程技术网

Javascript Asp.net Mvc中用于多个项目(如stackoverflow标记搜索部分)的自动完成文本框

Javascript Asp.net Mvc中用于多个项目(如stackoverflow标记搜索部分)的自动完成文本框,javascript,jquery,asp.net-mvc-4,autocomplete,Javascript,Jquery,Asp.net Mvc 4,Autocomplete,我尝试获取多个项目的自动完成文本框 我的看法是 $(function () { var availableTags = Html.Raw(Json.Encode(ViewBag.movies)); function split(val) { return val.split(/,\s*/); } function extractLast(term) { return split(term).pop();

我尝试获取多个项目的自动完成文本框

我的看法是

  $(function () {
      var availableTags = Html.Raw(Json.Encode(ViewBag.movies));
      function split(val) {
          return val.split(/,\s*/);
      }
      function extractLast(term) {
          return split(term).pop();
      }

      $("#tags")
      // don't navigate away from the field on tab when selecting an item
  .bind("keydown", function (event) {
      if (event.keyCode === $.ui.keyCode.TAB &&
        $(this).data("ui-autocomplete").menu.active) {
          event.preventDefault();
      }
  })
  .autocomplete({
      minLength: 0,
      source: function (request, response) {              
          response($.ui.autocomplete.filter(
        availableTags, extractLast(request.term)));
      },




  @using (@Html.BeginForm())
   {
    <b>Search Movie</b>
    @Html.TextBox("tags", null, new { id = "tags" })
   @* @Html.TextBoxFor(m => m.nam, new { id = "txtSearch", name = "SearchTerm" })*@
    }
$(函数(){
var availableTags=Html.Raw(Json.Encode(ViewBag.movies));
功能拆分(val){
返回val.split(/,\s*/);
}
功能提取最后(学期){
返回拆分(term.pop();
}
$(“#标签”)
//选择项目时不要离开选项卡上的字段
.bind(“键控”,函数(事件){
如果(event.keyCode===$.ui.keyCode.TAB&&
$(this.data(“ui自动完成”).menu.active){
event.preventDefault();
}
})
.自动完成({
最小长度:0,
来源:功能(请求、响应){
响应($.ui.autocomplete.filter(
availableTags,extractLast(request.term));
},
@使用(@Html.BeginForm())
{
搜索电影
@TextBox(“tags”,null,新的{id=“tags”})
@*@Html.TextBoxFor(m=>m.nam,new{id=“txtSearch”,name=“SearchTerm”})*@
}
我的控制器操作方法如下所示

   public JsonResult GetMovieNames(string term)
    {
        List<string> mnames = db.Movienames(term).ToList();
        var rows = mnames.ToArray();
        ViewBag.movies = rows;
        return Json(mnames, JsonRequestBehavior.AllowGet);
    }
publicjsonresult GetMovieNames(字符串术语)
{
List mnames=db.Movienames(term.ToList();
var rows=mnames.ToArray();
ViewBag.movies=行;
返回Json(mnames,JsonRequestBehavior.AllowGet);
}
如何将movienames(即字符串列表)传递给javascript中的可用标记。
在输出中,它显示home/movienames。但我需要将电影名称列表放入可用标记中。

对需要自动完成功能的元素应用
class
属性,并使用以下代码。检查

检查完整的代码示例

$( ".className" ))
.autocomplete({
 source: function( request, response ) {
 $.getJSON( "search.php", {
 //cosntruct it
 }, response );
}
更新:如果使用MVC,只需将
search.php
更改为
\Controller\search

下面是为autocomplete构建基于JSON的输出的示例代码

public JsonResult Search(string term)
{
    List<Records> recs = new List<Records>();           
    var rows = recs.ToArray();
    return Json(rows, JsonRequestBehavior.AllowGet);
}
publicjsonresult搜索(字符串术语)
{
列表记录=新列表();
var rows=recs.ToArray();
返回Json(rows,JsonRequestBehavior.AllowGet);
}

我使用mvc.so来代替我需要在jquery网站中使用的search.php(我是指操作方法)。autocomplete({minLength:0,source:function(request,response){response($.ui.autocomplete.filter(availableTags,extractLast(request.term));},我需要将字符串数组从控制器传递到视图(在“availableTags”中)我需要传递数据库值)。如何传递?感谢您的响应…@user3145484,将其保存在ViewBag中并传递。我也尝试了该方法。“var availableTags=Html.Raw(Json.Encode(ViewBag.movies));”无效