gpt4 book ai didi

javascript - JQuery UI 自动完成未到达 ActionResult C# MVC

转载 作者:可可西里 更新时间:2023-11-01 01:31:21 25 4
gpt4 key购买 nike

我已经阅读了很多关于相同问题的帖子,但都没有帮助,所以对重复的问题表示歉意:(我已经按照 JQueryUI 网站上的简单示例进行了硬编码值和自动完成工作,但我需要它来 self 的数据库。

查看:

@Html.TextBoxFor(model => model.Position, new { @type = "text", @id = "jobtitle", @name = "jobtitle", @placeholder = "Job Title" })

JS:

编辑:我在成功时添加了警报,正在调用警报,但没有数据(即没有从数据库中提取数据)

<script>
$(function () {
$("#jobtitle").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("JobsAutoFill", "Account")',
data: {
Prefix: request.term
},
success: function (data) {
alert(data);
response(data);
}
});
},
minLength: 1
});

//$("#jobtitle").autocomplete({
// source: "/Account/JobsAutoFill/"
//});
});
</script>

我已经添加了所需的链接:

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

下面是我的 ActionResult(实际上是一个 JsonResult)和用于拉取作业列表的函数:

    public List<Jobs> GetAllJobs()
{
List<Jobs> JobsList = new List<Jobs>();

using (RBotEntities EF = new RBotEntities())
{
var JobsListQuery = (from ED in EF.EmploymentDetails
select new
{
ED.pkiEmploymentDetailID,
ED.Position
});

foreach (var item in JobsListQuery)
{
JobsList.Add(new Jobs
{
Id = item.pkiEmploymentDetailID,
Name = item.Position
});
}
}

return JobsList;
}

public JsonResult JobsAutoFill(string Prefix)
{
//Note : you can bind same list from database


List<Jobs> ObjList = new List<Jobs>();

ObjList = GetAllJobs();

//Searching records from list using LINQ query


var JobNames = (from N in ObjList
where N.Name.StartsWith(Prefix)
select new { N.Name });
return Json(JobNames, JsonRequestBehavior.AllowGet);
}

我是不是遗漏了什么或做错了什么?

感谢任何帮助,谢谢!

最佳答案

我成功了!

导致问题的第一件事是我需要在 ActionResult 上方添加 [AllowAnonymous]。

其次,我将我的 Ajax 调用更改为:

$(function () {
$("#jobtitle").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("JobsAutoFill", "Account")',
data: {
Prefix: request.term
},
success: function (data) {
response($.map(data, function (obj) {
return {
label: obj.Name,
value: obj.Name
};
}));
}
});
},
minLength: 1
});
});

下面是我的 ActionResult。我添加了一个更改来区分大小写:

[AllowAnonymous]
public JsonResult JobsAutoFill(string Prefix)
{
//Note : you can bind same list from database


List<Jobs> ObjList = new List<Jobs>();

ObjList = GetAllJobs();

//Searching records from list using LINQ query


var JobNames = (from N in ObjList
where N.Name.ToLower().StartsWith(Prefix.ToLower())
select new { N.Name });
return Json(JobNames, JsonRequestBehavior.AllowGet);
}

关于javascript - JQuery UI 自动完成未到达 ActionResult C# MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42268569/

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