【问题标题】:400 bad request, but there is nothing wrong with this page400 bad request,但是这个页面没有问题
【发布时间】:2017-01-10 20:55:34
【问题描述】:

我在我的 mvc 应用程序上使用分页列表。我有很多不同的页面可以执行此操作,但由于某些随机原因,此页面会引发 400 bad request 错误。我几乎肯定代码是一样的。

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 错误。

我正在为我的数据库中的其他表执行此完全相同的功能,它工作正常。这个让我束手无策。

【问题讨论】:

  • 你检查你的服务器是否有抛出或吞没的异常?
  • 您可以使用浏览器控制台调试到 ajax 调用吗?网络标签通常有很好的信息。
  • 另外,您确定这是GET 而不是POST
  • 我不明白为什么页面加载正常,但是当我使用ajax调用刷新这个表时它不起作用。

标签: asp.net asp.net-mvc pagedlist


【解决方案1】:

如果它出现在HTML post 中,这将是相当明显的。问题很简单,因为我在视图中有错误(意外添加了一个字符)。 c# 函数执行良好,然后代码在视图端中断,这是使用 ajax 和 mvc 进行调试的缺陷之一。

【讨论】:

    猜你喜欢
    • 2011-08-31
    • 2019-09-07
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2015-07-23
    相关资源
    最近更新 更多