Asp.net mvc MVC中的自动完成文本框返回';[]和#x27;当从数据库填充值且不显示放置textbox控件的视图时
我使用以下代码在MVC中实现自动完成文本框。但是,当我调试项目时,它会在浏览器中显示一对尖括号。请检查我的代码 控制器:Asp.net mvc MVC中的自动完成文本框返回';[]和#x27;当从数据库填充值且不显示放置textbox控件的视图时,asp.net-mvc,razor,jquery-ui-autocomplete,Asp.net Mvc,Razor,Jquery Ui Autocomplete,我使用以下代码在MVC中实现自动完成文本框。但是,当我调试项目时,它会在浏览器中显示一对尖括号。请检查我的代码 控制器: public ActionResult Autocomplete(string searchstr) { var tenders = db.farmas.Where(t => t.Itemname.ToLower() .Contains(searchstr.ToLower())).Take(10) .OrderBy(t => t.Itemname) .Selec
public ActionResult Autocomplete(string searchstr)
{
var tenders = db.farmas.Where(t => t.Itemname.ToLower()
.Contains(searchstr.ToLower())).Take(10)
.OrderBy(t => t.Itemname)
.Select(t => new { label = t.Itemname });
return Json(tenders, JsonRequestBehavior.AllowGet);
}
视图:
自动完成
尝试使用“/NewDefault1/Autocomplete?searchstr=”代替“/NewDefault1/Autocomplete?term=”。此外,您还可以通过粘贴URL:“{URL}/NewDefault1/Autocomplete?term=a”而不是发送一些有希望的搜索字符串来测试是否从控制器中提取任何数据。至少你会知道是客户端还是服务器端的问题。我刚刚试过。。不工作。问题是当我调试时,文本框的自动完成视图根本没有显示出来。它直接将“[]”作为浏览器中的输出。好的。。将尝试此操作。控制器中的searchstr在调试时捕获空值
<!DOCTYPE html>
<html>
<head>
<h2>Autocomplete</h2>
<link href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css rel="stylesheet"
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js">
</script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.js">
</script>
@Scripts.Render("~/bundles/javascript")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Styles.Render("~/Content/themes/base/css")
<script type="text/javascript">
$(document).ready(function () {
$('#Itemname').autocomplete({
source: function (request, response) {
$.getJSON("/NewDefault1/Autocomplete?term=" + request.term, function (data) {
response(data);
});
},
minLength: 3,
delay: 100
});
});
</script>
</head>
<body>
<div id="main">
<div style="padding: 20px;">
pls type in the textbox
</div>
<div style="padding: 20px;">
Product: @Html.TextBox("Itemname")
</div>
</div>
<div id="footer">
</div>
</div>
</body>
</html>