我在我的mvc应用程序上使用分页列表。我有很多不同的页面可以做到这一点,但是由于一些随机的原因,这个会抛出400个错误的请求错误。我几乎肯定代码是一样的。
public ViewResult ManageWeapons(string sortOrder, string currentFilter, string searchString, int? page)
{
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "WeaponName_desc" : "";
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
var weapon = from s in db.Weapons
select s;
if (!String.IsNullOrEmpty(searchString))
{
weapon = weapon.Where(s => s.WeaponName.Contains(searchString));
}
switch (sortOrder)
{
case "WeaponName_desc":
weapon = weapon.OrderByDescending(s => s.WeaponName);
break;
default: // ascending
weapon = weapon.OrderBy(s => s.WeaponName);
break;
}
int pageSize = 25;
int pageNumber = (page ?? 1);
return View(weapon.ToPagedList(pageNumber, pageSize));
}
我这样调用它,对列进行排序
//This function updates a pagedList using Ajax
function getSorterWeapons(sortOrder, currentFilter) {
//alert($(this).val());
console.log("making it!");
$.ajax({
type: "GET",
url: '@Url.Action("ManageWeapons", "AdminTools")',
cache: false,
data: { sortOrder: sortOrder, currentFilter: currentFilter },
error: function () {
alert("An error occurred.");
},
success: function (data) {
$("#manageWeaponsBox").html(data);
console.log("success!");
alert(data);
}
});
}
我在服务器上设置了断点,它完成得很好。似乎没有什么错,但客户端在控制台中不断输出400错误。
我正在为我的数据库中的其他表做这个完全相同的功能,它工作正常。这个让我斗智斗勇。
答案 0 :(得分:0)
如果它出现在HTML post
中,这个就会很明显。问题很简单,因为我在视图中出现了错误(意外添加了一个字符)。 c#函数执行正常,然后代码在视图方面破坏,这是使用ajax和mvc进行调试的一个陷阱。