Asp.net 核心 MVC jquery 自动完成返回空白数据行
Asp.net core MVC jquery Autcomplete returning blank data rows
我已经为这个问题苦苦挣扎了一段时间。我已经开始使用 ASP.NET Core 并正在构建一个 ASP.NET Core MVC 项目。 JQuery 自动完成小部件从查询返回空白数据时遇到问题。
这是我的代码:
html 视图:
@section Scripts{
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="~/lib/Scripts/jquery-3.4.1.js"></script>
<script src="~/lib/Scripts/jquery-ui.min.js"></script>
<script>
$("#searchInput").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetSearchValue", "Requests")',
dataType: "json",
data: { search: $("#searchInput").val() },
success: function (data) {
response($.map(data, function (item) {
return { label: item.NameString};
}));
},
error: function (xhr, status, error) {
alert("Error");
}
});
}
});
</script>
}
控制器:
[HttpGet]
public async Task<IActionResult> GetSearchValue(string search)
{
var allsearch = _context.Requests.Where(x => x.NameString.ToLower().Contains(search)).Select(x => new Requests
{
NameString = x.NameString,
}).ToList();
return Ok(allsearch);
}
似乎 JQuery 返回了正确数量的建议,但是它们是空白的。所以一定是 JQuery 中的 NameString
没有被正确传递,但我不知道该怎么做。
请使用以下代码
response($.map(data, function (item) {
return item.nameString;
}));
而不是
response($.map(data, function (item) {
return { label: item.NameString};
}));
它会起作用。
我已经为这个问题苦苦挣扎了一段时间。我已经开始使用 ASP.NET Core 并正在构建一个 ASP.NET Core MVC 项目。 JQuery 自动完成小部件从查询返回空白数据时遇到问题。
这是我的代码:
html 视图:
@section Scripts{
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="~/lib/Scripts/jquery-3.4.1.js"></script>
<script src="~/lib/Scripts/jquery-ui.min.js"></script>
<script>
$("#searchInput").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetSearchValue", "Requests")',
dataType: "json",
data: { search: $("#searchInput").val() },
success: function (data) {
response($.map(data, function (item) {
return { label: item.NameString};
}));
},
error: function (xhr, status, error) {
alert("Error");
}
});
}
});
</script>
}
控制器:
[HttpGet]
public async Task<IActionResult> GetSearchValue(string search)
{
var allsearch = _context.Requests.Where(x => x.NameString.ToLower().Contains(search)).Select(x => new Requests
{
NameString = x.NameString,
}).ToList();
return Ok(allsearch);
}
似乎 JQuery 返回了正确数量的建议,但是它们是空白的。所以一定是 JQuery 中的 NameString
没有被正确传递,但我不知道该怎么做。
请使用以下代码
response($.map(data, function (item) {
return item.nameString;
}));
而不是
response($.map(data, function (item) {
return { label: item.NameString};
}));
它会起作用。