0

ポップアップのエラー全体: 「エラー! 要求された URL が 500 を返しました - 内部サーバー エラー」

編集 これは部分的に修正されました。TempData をインデックス関数に移動し、そこにもパラメーターを追加しました。ただし、これにより、並べ替え機能も壊れています ( .Sortable(sorting => sorting.SortMode(GridSortMode.SingleColumn)) End Edit

このエラーが発生している理由がわかりませんし、すでに時間がかかりすぎているため、まずコードを投稿して、誰かが助けてくれることを願っています.

コントローラ:

[GridAction(EnableCustomBinding = true)]
public ActionResult GetTimetables(int moduleId, ModuleType moduleType)
{
    TempData["ModuleId"] = moduleId;
    IList<TimetableViewModel> timetableViewModels =
    //TODO: Don't hardcode this
    _timetableService.GetTimetableEntriesAssociatedWithModule(moduleId, moduleType);

    return View(new GridModel
    {
        Data = timetableViewModels,
    });
}

モデル(おそらく問題ではありません):

public class TimetableViewModel : BaseViewModel
{
    public int Id { get; set; }
    public string Date { get; set; }
    public string SessionTimePeriod { get; set; }
    public string RoomName { get; set; }
    public int NumberOfResources { get; set; }
    public string Notes { get; set; }
}

}

ビュー (すべてを貼り付けるには長すぎるため、必要ありません)

@(Html.Telerik().Grid(Model)
           .Name("TimetableGrid")
           .PrefixUrlParameters(false)
           .Columns(columns =>
...
           .DataBinding(dataBinding => dataBinding.Ajax().Select("GetTimetables", "Manage", new { moduleId = TempData["ModuleId"], moduleType = ModuleType.UnitOfLearning }))
         //.Pageable(paging => paging.Total(Model.entryCount).PageSize(25))
           .Sortable(sorting => sorting.SortMode(GridSortMode.SingleColumn)))

@Html.Telerik().ScriptRegistrar().jQuery(false).jQueryValidation(false)
4

2 に答える 2

1

エラーの原因と思われるものがいくつかあります。最初に、Data ステートメントの最後にコンマがあります。

return View(new GridModel
{
    Data = timetableViewModels,
});

する必要があります

return View(new GridModel
{
    Data = timetableViewModels
});

または、必要に応じてこれを行うことができます

return View(new GridModel(timetableViewModels);

次に、ビューで、Ajax データバインディングのデータ型をグリッドに伝える必要があると思います。

@(Html.Telerik().Grid(Model)
       .Name("TimetableGrid")

する必要があります

@(Html.Telerik().Grid<TimetableViewModel>()
       .Name("TimetableGrid")

また、可能であれば、コントローラーにブレークポイントを設定して、データが timetableViewModels 変数に正しく読み込まれるかどうかを確認してみてください。

于 2012-06-15T13:03:50.077 に答える
1

私は同様の問題を抱えていました.Fiddlerは、問題はデータバインディングステートメントにあると結論付けました: dataBinding.Ajax().Select(...)

問題は遅延 LINQ 実行にあります。このソリューションは、LINQ クエリの最後に ToList を追加するのに役立ちました: asp.net MVC 4 Telerik Grid Ajax issue

于 2014-02-18T08:57:04.663 に答える