-1

我正在使用数据绑定 Ajax 和 MVC 3 使用 Telerik Grid。我遇到的第一个问题是当我要在 Grid 中加载数据时,数据加载成功。但有时它会显示弹出错误消息“错误!请求的 URL 返回 500 - 内部服务器错误”。第二个是当我尝试过滤 grid 中的值时,我得到了同样的异常但并非总是如此。

谁能告诉我,为什么有时会发生此错误?以及如何解决此问题以及如何停止显示错误弹出窗口?请指导我。谢谢。

这是我的视图代码:

@(
Html.Telerik().Grid<ItemValueView>()
           .Name("ItemGrid")
           .Scrollable(scrollable => scrollable.Height("550px"))
           .ClientEvents(events => events
                                       .OnLoad("onLoad")                                                                                      .OnDataBound("onDataBound")
                                       .OnEdit("onEdit")
                                       //.OnSave("onSave")
           )
           .Editable(editing => editing.Mode(GridEditMode.InLine))
           .DataKeys(dataKeys => dataKeys.Add(i => i.ItemKey))
           .DataBinding(dataBinding => dataBinding
                                           //Ajax binding
                                           .Ajax()
                                           .OperationMode(GridOperationMode.Server)
                                           .Select("AjaxToolSelect", "SalesTool")

                                                                                         .Update("AjaxToolUpdate", "SalesTool")
           )

           .Columns(columns =>
                        {
                            columns.Bound(i => i.CustomerName).Title("Customer").ReadOnly();
                            columns.Bound(i => i.DisplayClassKey).Title("Sub Class").ReadOnly();
                            columns.Bound(i => i.Place).Visible(false);
}) 
                                    .Pageable(pager => pager.PageSize(50))
                                    .Sortable(sorting => sorting
                                    .SortMode(GridSortMode.MultipleColumn)
                                    .OrderBy(sortOrder =>
                                                 {
                                                     sortOrder.Add(i => i.CustomerName);
                                                     sortOrder.Add(i => i.DisplayClassKey);

                                                 }))
           .Groupable(grouping => grouping
                                      .Groups(groups => groups.Add(g => g.CustomerName))
           )
           .Filterable()

我的控制器是:

    [HttpPost]
    [GridAction]
    public ActionResult AjaxToolSelect()
    {
        var items = DataProvider.GetAllItems(true);
        var grid = new GridModel(items);
        return View(grid);
    }
4

1 回答 1

2

500 Internal Server Error 是一个非常普遍的错误。500 表示服务器出现问题(在这种情况下很可能在 C# 代码或视图中)。它并没有真正告诉我们发生了什么问题。

要追踪错误,您可以尝试一些方法。如果您在 Visual Studio 中运行,请检查输出日志并查看那里是否有任何错误消息。尝试在 C# 中设置断点并查看实际执行的代码。如果您在 Web 浏览器中访问开发人员工具,您可以找到返回 500 作为其状态代码的实际 Web 请求。因为它可能会为您提供一些额外的信息。在 Google Chrome 中,您可以按 F12 键,转到网络选项卡,选择请求,然后查看预览或响应选项卡。

于 2012-09-10T11:04:06.050 回答