PagedList MVC With JQuery UI 自动完成导致错误
PagedList MVC With JQuery UI Autocomplete Causing Error
我正在尝试在文本框上使用 JQuery UI 自动完成功能来过滤分页列表并动态更新列表,以便它只显示以过滤器中的值开头的任何内容.但是,每当我开始在搜索框中输入内容时,都会出现以下错误:
语法错误:意外的标记 <
这是我的控制器:
[HttpGet]
public ActionResult Index(string filter, int currentPage = 1)
{
List<string> allEmails = null;
if (!string.IsNullOrEmpty(filter))
{
allEmails = dataContext.Emails
.Where(x => x.email.StartsWith(filter))
.Select(x => x.email)
.ToList();
}
else
{
allEmails = dataContext.Emails
.Select(x => x.email)
.ToList();
}
PagedList<string> model = new PagedList<string>(allEmails, page, pageSize);
ViewBag.Emails = allEmails.OrderBy(x => x).Skip((page - 1) * pageSize).Take(pageSize);
ViewBag.Filter = filter;
return View(model);
}
这是我的观点:
@model PagedList<string>
@using PagedList
@using PagedList.Mvc
<div id="paginatedDiv">
<table id="pageinatedTable">
<tr>
<th>
Email
</th>
</tr>
@foreach (var item in ViewBag.Emails)
{
<tr>
<td>
@item
</td>
</tr>
}
</table>
@Html.PagedListPager(Model,
(page) => Url.Action("Index", "Home", new
{
page,
pageSize = Model.PageSize,
filter = ViewBag.Filter
}),
PagedListRenderOptions.ClassicPlusFirstAndLast)
</div>
@Html.TextBox("search")
@section scripts
{
<script type="text/javascript">
$(document).ready(function () {
$('#search').autocomplete({
source: function(request, response)
{
$.ajax({
url: '@Url.Action("Index", "Home")',
dataType: "json",
contentType: 'application/json, charset=utf-8',
data: {
filter : $("#search").val(),
page : '@Model.PageNumber'
},
error: function (xhr, status, error) {
alert(error);
}
})},
minlength: 1
});
});
</script>
}
我在这里尝试做的事情可行吗?我会以错误的方式去做吗?如果您需要更多信息,请告诉我。
Ajax 函数正在返回一个 HTML 错误,该错误正在尝试解析为该函数。它会失败并出错,因为第一个字符将是 '<' 之类的
我正在尝试在文本框上使用 JQuery UI 自动完成功能来过滤分页列表并动态更新列表,以便它只显示以过滤器中的值开头的任何内容.但是,每当我开始在搜索框中输入内容时,都会出现以下错误:
语法错误:意外的标记 <
这是我的控制器:
[HttpGet]
public ActionResult Index(string filter, int currentPage = 1)
{
List<string> allEmails = null;
if (!string.IsNullOrEmpty(filter))
{
allEmails = dataContext.Emails
.Where(x => x.email.StartsWith(filter))
.Select(x => x.email)
.ToList();
}
else
{
allEmails = dataContext.Emails
.Select(x => x.email)
.ToList();
}
PagedList<string> model = new PagedList<string>(allEmails, page, pageSize);
ViewBag.Emails = allEmails.OrderBy(x => x).Skip((page - 1) * pageSize).Take(pageSize);
ViewBag.Filter = filter;
return View(model);
}
这是我的观点:
@model PagedList<string>
@using PagedList
@using PagedList.Mvc
<div id="paginatedDiv">
<table id="pageinatedTable">
<tr>
<th>
Email
</th>
</tr>
@foreach (var item in ViewBag.Emails)
{
<tr>
<td>
@item
</td>
</tr>
}
</table>
@Html.PagedListPager(Model,
(page) => Url.Action("Index", "Home", new
{
page,
pageSize = Model.PageSize,
filter = ViewBag.Filter
}),
PagedListRenderOptions.ClassicPlusFirstAndLast)
</div>
@Html.TextBox("search")
@section scripts
{
<script type="text/javascript">
$(document).ready(function () {
$('#search').autocomplete({
source: function(request, response)
{
$.ajax({
url: '@Url.Action("Index", "Home")',
dataType: "json",
contentType: 'application/json, charset=utf-8',
data: {
filter : $("#search").val(),
page : '@Model.PageNumber'
},
error: function (xhr, status, error) {
alert(error);
}
})},
minlength: 1
});
});
</script>
}
我在这里尝试做的事情可行吗?我会以错误的方式去做吗?如果您需要更多信息,请告诉我。
Ajax 函数正在返回一个 HTML 错误,该错误正在尝试解析为该函数。它会失败并出错,因为第一个字符将是 '<' 之类的