gpt4 book ai didi

javascript - AJAX request.term 返回 null; jQuery 自动完成文本框,.NET MVC

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

查看:

    <script type="text/javascript">
$(document).ready(function () {
$("#OriginInput").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("AjaxMethod","MyUrl")', type: "POST", dataType: "json",
data: { id: request.term },
success: function (data) {
response($.map(data, function (item) {
return { label: item.label, value: item.id };
}));
}
});
},
minLength: 2
});

Controller

    public static List<PostalCodeModel> ListOfPostalCode;
public ActionResult Index()
{
return View();
}

[HttpPost]
public JsonResult AjaxMethod(string x)
{
x = Request.QueryString["term"];

var locations = ListOfPostalCode.Where(r => x != null && (r.City.StartsWith(x) || r.State.StartsWith(x) || r.Zip.StartsWith(x) || r.Country.StartsWith(x))).Take(25).Select(r => new { id = r.ToString(), label = r.ToString(), name = r.ToString() });
return Json(locations, JsonRequestBehavior.AllowGet);

}

型号

        public class PostalCodeModel
{
public PostalCodeModel(string c, string s, string z, string o)
{
City = c;
State = s;
Zip = z;
Country = o;
}
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public string Country { get; set; }

public override string ToString()
{
// trim to remove unnecessary spaces
return City.Trim() + ", " + State.Trim() + ", " + Zip.Trim() + ", " + Country.Trim();
}

每次我在自动完成框中进行此调用时,x 在我的 Controller 中返回 null,因此不会解析邮政编码列表中的任何信息。不包括在 Controller 中初始化我的完整邮政编码列表的查询(大约有 190000 个项目),但它似乎工作正常。

我认为主要问题是 View 中的ajax没有将“OutputText”框传递给请求/响应,但在其他地方搜索时我似乎找不到问题。感谢您提供的所有帮助;一周前刚开始使用 JavaScript。

最佳答案

在您的 ajax 方法中,您发送了错误的数据。应该是这样的。

 $.ajax({
url: '@Url.Action("AjaxMethod", "MyUrl")',
type: "POST",
data: { term: request.term },
dataType: "json",
success: function (data) {
response($.map(data, function (item) {
return { label: item.label, value: item.id };
}));
}
});

此外,您不需要使用 Request.QueryString["term"]; 获取参数

改变

public JsonResult AjaxMethod(string x) 

public JsonResult AjaxMethod(string term)

另外,不要忘记将检查项设为空。

关于javascript - AJAX request.term 返回 null; jQuery 自动完成文本框,.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51315236/

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