【发布时间】:2016-01-24 10:11:32
【问题描述】:
我正在使用asp.net mvc 4 和EF 6 创建一个网站,在该网站上我需要一个填充表,用于在Ajax 的 PartialView 上进行分页、排序和过滤/搜索。到目前为止,分页、排序和搜索功能运行良好,但我无法将其用于 Ajax,其中表格只会更新而不是重新加载页面。这是我的代码,
控制器
public PartialViewResult Flats(string sortOrder, string currentFilter, string strSearch, int? page)
{
ViewBag.currentSort = sortOrder;
if (strSearch != null)
{
page = 1;
}
else
{
strSearch = currentFilter;
}
ViewBag.CurrentFilter = strSearch;
ViewBag.TitleSort = String.IsNullOrEmpty(sortOrder) ? "title_desc" : "";
var FlatsOrder = from f in rentdb.FlatInfoes select f;
if (!String.IsNullOrEmpty(strSearch))
{
FlatsOrder = FlatsOrder.Where(s => s.address_area.Contains(strSearch));
}
switch (sortOrder)
{
case "title_desc":
FlatsOrder = FlatsOrder.OrderByDescending(a => a.title);
break;
default:
FlatsOrder = FlatsOrder.OrderBy(a => a.title);
break;
}
int pageSize = 5;
int pageNumber = (page ?? 1);
return PartialView(FlatsOrder.ToPagedList(pageNumber, pageSize));
}
查看
<div id="divTable" class="span12" style="background-color: #fff;">
<table class="table table-hover">
<thead style="background-color: #cccccc;">
<tr>
<th class="text-center">
@Ajax.ActionLink("Title", "Flats", new { sortOrder = ViewBag.TitleSort, currentFilter = ViewBag.CurrentFilter }, new AjaxOptions() {
HttpMethod = "GET",
UpdateTargetId = "divTable",
InsertionMode = InsertionMode.Replace
})
</th>
</tr>
</thead>
</table>
</div>
每当我单击Title 链接进行排序时,整个页面都会重新加载然后排序。如何通过 ajax 和 partialview 更新表格?非常需要这个帮助。谢谢。
【问题讨论】:
-
你是否加入了
jquery.unobtrusive-ajax.js? -
是的,并且还检查了
web.config中的ClientValidationEnabled和UnobtrusiveJavaScriptEnabled。两者都是真的! -
不确定您的链接会做什么。它没有传递
strSearch或page的值,所以它只会继续生成相同的视图。 -
我刚刚在
View中给出了排序代码,如果有人能找到解决方案,那么我可以完成剩下的工作。 -
只是一个提示,我想在同一个视图上更新表格。
标签: asp.net ajax asp.net-mvc