-1

データバインディングAjaxとMVC3を使用してTelerikGridを使用しています。最初の問題は、Gridにデータをロードしようとすると、データが正常にロードされることです。しかし、エラーメッセージ「エラー!要求されたURLが500-内部サーバーエラーを返しました」というポップアップが表示されることがあります。2つ目は、グリッドで値をフィルタリングしようとすると、同じ例外が発生しますが、常にではありません。

誰かが私に言うことができます、なぜこのエラーが時々発生しているのですか?そして、どうすればこの問題を解決できますか?また、エラーポップアップの表示を停止するにはどうすればよいですか?これについて教えてください。ありがとう。

これはマイビューコードです:

@(
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 内部サーバー エラーは、非常に一般的なエラーです。500 は、サーバーで問題が発生したことを意味します (この場合、C# コードまたはビューで発生する可能性が最も高い)。何がうまくいかなかったのかについては何も教えてくれません。

エラーを追跡するために、いくつかのことを試すことができます。Visual Studio で実行している場合は、出力ログをチェックして、そこにエラー メッセージがあるかどうかを確認します。C# でブレーク ポイントを設定してみて、実際に実行されるコードを確認してください。Web ブラウザーで開発者ツールにアクセスすると、ステータス コードとして 500 を返す実際の Web 要求を見つけることができます。追加情報があるかもしれません。Google Chrome では、F12 を押してネットワーク タブに移動し、リクエストを選択してから、プレビューまたはレスポンス タブを確認します。

于 2012-09-10T11:04:06.050 に答える