【发布时间】:2012-06-15 11:39:29
【问题描述】:
弹出窗口中的整个错误:“错误!返回的请求的 URL 500 - 内部服务器错误”
编辑 这部分已修复,我将 TempData 移动到索引函数并在那里添加了参数。但是,这也破坏了我的排序功能( .Sortable(sorting =>sorting.SortMode(GridSortMode.SingleColumn)) 结束编辑
我不知道为什么会出现这个错误并且已经花费了太多时间,所以首先我将发布代码并希望有人能提供帮助。
控制器:
[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)
【问题讨论】:
-
如果您可以使用 Fiddler 或开发人员工具检查对
GetTimetables的调用主体,以了解异常所指的内容,这将有所帮助。 -
萤火虫告诉你什么(POST Answer)?
-
感谢您对使用 firebug 的建议,这就是它所说的(我应该能够使用它,我现在就开始,但是如果您有任何想法,请立即发布 :)):在 Controller 'Manage' 上调用 Action 'GetTimetables' 时发生以下错误System.ArgumentException:参数字典包含参数 'moduleId' 的空条目不可为空的类型 'System.Int32'对于方法 'System.Web.Mvc.ActionResult GetTimetables(Int32, InfoMentor.IM2.Domain.Model.Modules.ModuleType)'
-
我通过将 TempData 移动到索引函数并在那里添加参数来解决此问题。但是,这也破坏了我的排序功能( .Sortable(sorting =>sorting.SortMode(GridSortMode.SingleColumn))
标签: ajax asp.net-mvc razor telerik telerik-grid