【问题标题】:Autocomplete script in asp mvcasp mvc中的自动完成脚本
【发布时间】:2019-04-06 19:47:55
【问题描述】:

您好,我是网页开发的新手,在 Stack over flow 中验证了所有相关问题,但我仍然无法得到解决方案。

我正在尝试在输入框中包含自动完成功能,如果我的 Layout = null; 在视图文件中,它可以正常工作,就像我使用现有的视图模板 ViewBag.Title = "Home Page"; 自动完成功能不起作用

查看文件:

@model IEnumerable<AspNetRoleBasedSecurity.Models.PostModel>
@{
ViewBag.Title = "Home Page";
}

<div class="row search-row">
<input class="search ui-autocomplete-input" type="text" id="CityName" placeholder="What do you need help with?"/>
<a class="buttonsearch btn btn-info btn-lg" href="search-results.html">Search</a>
</div>

使用的脚本:

<script type="text/javascript">
 $(document).ready(function () {
 $("#CityName").autocomplete({
            source: function (request,response) {
                $.ajax({
                    url: "/Home/GetRecord",
                    type: "POST",
                    dataType: "json",
                    data: { prefix: request.term },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.Title, value: item.Title };
                        }))
                    }
                })
            },
        });
    });
</script>

参考

  <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" />
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js"></script>

C#

 public JsonResult GetRecord(string prefix)
    {
        DataSet ds = PostRepo.GetName(prefix);
        List<search> searchlist = new List<search>();
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            searchlist.Add(new search
            {
               Title= dr["Title"].ToString(),
                Tags = dr["Tags"].ToString(),
                Id = dr["Id"].ToString()
            });
        }
        return Json(searchlist, JsonRequestBehavior.AllowGet);
    }

如果ViewBag.Title = "Home Page"; 没有收到错误消息但自动完成功能不起作用,我不明白为什么它不起作用。 请帮助我理解这个概念。

【问题讨论】:

  • 您的解决方案中有 layout.cshtml 吗?我能想到的唯一一件事是当 Layout 为空时,它只使用你所拥有的。但是当你删除它并添加 viewbag 时,它会去并检索默认布局,其中可能有一些东西阻止自动完成正常工作。
  • 是的@Joy 我只想在我的母版页中使用自动完成功能,有没有其他方法可以实现这一点
  • 布局可能有导致冲突的 javascript 引用。你的布局中是否有类似@Scripts.Render("~/js") 的行?
  • @DvynResh 检查浏览器控制台是否有任何错误。

标签: c# asp.net asp.net-mvc-4 autocomplete


【解决方案1】:

可能是您提到的检查布局页面脚本

并且不要在子视图中添加任何脚本,因为脚本可能与多个版本冲突

这是工作示例auto complete

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    相关资源
    最近更新 更多