gpt4 book ai didi

jquery - MVC3 Razor jQuery 自动完成传递返回值但不显示任何内容

转载 作者:行者123 更新时间:2023-12-01 03:51:51 25 4
gpt4 key购买 nike

我的自动完成功能遇到问题,它会命中 Controller 并返回值,但页面上没有显示任何内容,我已在下面提供了代码,如有任何帮助,我们将不胜感激。

HomeController方法

[HttpPost]
public JsonResult GetAccounts(string id)
{
var accounts = NavRepository.GetAccountsBasedOnString(id);

return Json(accounts, JsonRequestBehavior.AllowGet);
}

关于.cshtml

 <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/base/jquery-ui.css" type="text/css" media="all" /> 
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"> </script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"> </script>


<script type="text/javascript">
$(function () {
$('#searchTerm').autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetAccounts", "Home")',
data: { id: request.term },
dataType: 'json',
type: 'POST',
minLength: 3,
success: function (event, ui) {
searchTerm.valueOf (ui.item.value);
}
});
}
});
});

</script>

@using (Html.BeginForm())
{
<form method="post" action="">
<input id="searchTerm" name="searchTerm" type="text" />
<input type="submit" value="Go" />
</form>
}

编辑:下面是我的最终功能

  $(function () {
$('#searchTerm').autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetAccounts", "Home")',
data: { id: request.term },
dataType: 'json',
type: 'POST',
minLength: 3,
success: function (data) {
response(data); ;
}
});
}
});
});

最佳答案

一些事情:

  1. 您需要调用小部件向您提供的source 函数提供的response 函数。另外,您似乎将自动完成选项之一 (minLength) 与 AJAX 调用混合在一起:

    $('#searchTerm').autocomplete({
    source: function (request, response) {
    $.ajax({
    url: '@Url.Action("GetAccounts", "Home")',
    data: { id: request.term },
    dataType: 'json',
    type: 'POST',
    success: function (data) {
    response(data); // You may have to perform post-processing here depending on your data.
    }
    });
    },
    minLength: 3
    });
  2. 此外,请确保您向小部件提供了它期望的数据。您需要为 response 函数提供一个字符串数组,例如:

    ["Item1", "Item2", "Item3"]

    或者,您可以提供带有 label 属性、value 属性或两者的对象数组:

    [{ label: "Item1", value: "1" }, { label: "Item2", value: "2" }]

    您可能已经这样做了,但我必须看看您的 Controller 操作返回什么。

关于jquery - MVC3 Razor jQuery 自动完成传递返回值但不显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7816303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com