gpt4 book ai didi

c# - jQuery 自动完成、MVC4 和 WebAPI

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

我从 http://www.codeproject.com/Tips/639578/jQuery-Autocomplete-MVC-and-WebAPI 下载了有关自动完成文本框的教程的源代码(例如,开始键入,将出现一个下拉列表,其中包含与前几个字符匹配的选项) - 我可以编译它并且它运行得很好。

尝试将其调整为用户名查找,但遇到了问题。一切都编译正常,但下拉菜单没有触发。我错过了一些东西,但我不知道是什么!

API Controller :

public class UserApiController : ApiController
{
[HttpGet]
public IEnumerable<ApplicationUser> GetUsers(string query = "")
{
using (var db = new ApplicationDbContext())
{
return String.IsNullOrEmpty(query) ? db.Users.ToList() :
db.Users.Where(p => p.UserName.Contains(query)).ToList();
}
}
}

Controller :

    [HttpGet]
public ActionResult Search()
{
return View();
}

[HttpPost]
public ActionResult Search(ApplicationUser user)
{
return RedirectToAction("Details", "PrivateMessage", new { Id = user.Id });
}

public ActionResult Details(string Id)
{
using (var db = new ApplicationDbContext())
{
return View(db.Users.FirstOrDefault(p => p.Id == Id));
}
}

模型(这个时髦的名字是为了排除其他地方的冲突):

public class ComposeMyMessageModel
{
public string Id { get; set; }
public string Title { get; set; }
public string NewAddress { get; set; }
}

网页:

@model MyWebsite.Models.ComposeMyMessageModel

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

@{
ViewBag.Title = "Compose";
}
@using (Html.BeginForm()){
@Html.HiddenFor(model => model.Id)
<input type="text" id="search" placeholder="Search for a product" required />
<input type="submit" value="Go" id="submit" />
}

<script type="text/javascript">
var url = '@Url.RouteUrl("DefaultApi", new { httproute = "", controller = "UserApi" })';
$('#search').autocomplete({
source: function (request, response) {
$.ajax({
url: url,
data: { query: request.term },
dataType: 'json',
type: 'GET',
success: function (data) {
response($.map(data, function (item) {
return {
label: item.Description,
value: item.Id
}
}));
}
})
},
select: function (event, ui) {
$('#search').val(ui.item.label);
$('#Id').val(ui.item.value);
return false;
},
minLength: 1
});
</script>

路由:

public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}

如果我没有粘贴任何相关的代码,那是因为我不知道它是相关的!将相应更新。谢谢。

最佳答案

您可以在浏览器的网络选项卡中查看请求和响应以了解您收到的内容吗?同时在success函数中设置断点来验证数据。

这应该为您指明正确的方向。

关于c# - jQuery 自动完成、MVC4 和 WebAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24891262/

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