【发布时间】:2019-06-17 15:19:00
【问题描述】:
我查看了许多实现 jQuery 自动完成功能的示例。其中大多数原因:
jquery-1.10.2.js:8706 GET /AddApplication/GetURL?term=s 404(未找到)
我对 jQuery 不是很有经验,我认为这个错误意味着路径错误?
我正在使用 c# 和 razor 页面。
AddApplication.cshtml.cs类:
[System.Web.Mvc.HttpGet]
public System.Web.Mvc.JsonResult GetURL(string term)
{
System.Web.Mvc.JsonResult result = new
System.Web.Mvc.JsonResult();
var urls = (from c in db.Url
where c.UrlName.StartsWith(term)
select new {c.UrlName});
result.Data = urls;
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
Console.WriteLine("---------"+result);
return result;
}
AddApplication.cshtml剃须刀前端:
<div>
<input type="text" name="url" id="url" placeholder="Search for a URL"
autocomplete="on">
</div>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/start/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script type="text/javascript">
$(function () {
$("#url").autocomplete({
source: "@Url.Action("GetURL","AddApplication")",
minLength: 1,
select: function (event, ui) {
if (ui.item) {
$("#url").val(ui.item.value);
$("form").submit();
}
}
});
});
</script>
据我所知,我已经尝试在脚本中使用 ajax 函数,但仍然无法正常工作。
【问题讨论】:
-
该错误确实意味着路径不正确。包含
GetURL()的控制器类的名称是什么?我假设它是AddApplicationController?你的路由是怎么配置的?可能值得在视图中使用@Url.Action("GetURL", "AddApplication");以确保路径有效。 -
@RoryMcCrossan 添加 Url Action 摆脱了 404。谢谢,但它现在什么也没做......所以我添加了 -> 来源:“@Url.Action("GetURL","AddApplication" )",
-
控制台中没有其他错误?您可能没有以自动完成所需的格式返回 JSON
-
控制台很好,我什至在我的后端有一个控制台写入行,如果调用该方法会命中。我也没有控制器类,只是剃须刀后端
-
即使调试并向我的 GetURL 方法添加断点,断点也不会被命中
标签: javascript c# jquery razor