jquery – 自动完成MVC 4 / Razor

我想我在尝试在MVC 4中添加自动完成功能时,会丢失一些明显的东西.从我在其他帖子中找到的内容,我已经能够把一个例子放在一起,但是我的控制器中的方法没有被调用.

到目前为止我已经尝试了

_布局

@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")

调节器

Public Function Numbers(term As String) As ActionResult
    Return Json(New String() {"one","two","three","four","five","six"},JsonRequestBehavior.AllowGet)
End Function

查看(我现在已经硬编码了Home / Numbers)

<div class="editor-label">
    @Html.LabelFor(Function(model) model.Number)
</div>
<div class="editor-field">
    @Html.EditorFor(Function(model) model.Number)
    @Html.ValidationMessageFor(Function(model) model.Number)
</div>

<script type="text/javascript">
    $(function () {
        $("#Number").autocomplete({
            source: 'Home/Numbers',minLength: 1
        });
    });
</script>

当我运行我的应用程序并在文本框中键入没有任何反应.我在“数字”功能中放了一个断点,似乎从来没有被调用过.

我的项目可以在这里找到http://www.filedropper.com/testapp

解决方法

如果您在布局中的body元素的底部有@ Scripts.Render行,并且在@RenderBody()之后,您需要将脚本放在脚本部分中:
@section scripts
<script type="text/javascript">
    $(function () {
        $("#Number").autocomplete({
            source: '@Url.Action("Numbers","Home")',minLength: 1
        });
    });
</script>
End Section

因为你的脚本依赖于jQuery,所以jQuery应该先加载.

或者只需将@ Scripts.Render声明移动到布局中的头部,那么您不需要将代码放入脚本部分(但是使用该部分更好)

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...