Telerik MVC Grid Rebind崩溃

时间:2011-12-21 20:15:15

标签: asp.net-mvc binding telerik telerik-grid

按照Telerik Mvc Grid Demo中的插入和编辑中的模式进行操作后,所有内容都会一直运行,直到它到达控制器方法返回的位置。

请参阅:http://demos.telerik.com/aspnet-mvc/razor/Grid/EditingAjax?theme=vista

这些方法调用我的存储库函数,成功更新数据库;但是,演示中的返回码如此处所示

[AcceptVerbs(HttpVerbs.Post)]        
[CultureAwareAction]        
[GridAction]        
public ActionResult _InsertAjaxEditing()
{
    EditableProduct product = new EditableProduct();            
    if (TryUpdateModel(product)) {
        SessionProductRepository.Insert(product);
    }            
    return View(new GridModel(SessionProductRepository.All()));        
}

一切都在返回线上,所以我尝试了:

  1. return View(new GridModel(myTypeRepository.All);
  2. return View(new GridModel(myTypeRepository.All.ToList());
  3. return View(new GridModel(myTypeRepository.All.ToArray());
  4. return View(new GridModel(myTypeRepository.All);
  5. return View(new GridModel(myTypeRepository.All.ToList());
  6. return View(new GridModel(myTypeRepository.All.ToArray());
  7. 返回视图(GridModel(myTypeRepository.All))
  8. 返回视图(GridModel(myTypeRepository.All.ToList()))
  9. 返回视图(GridModel(myTypeRepository.All.ToArray()))
  10. 所有这些都导致无法遵循的异常,因为它指向Telerik文件:GridActionAttribute.cs。

    现在因为它出现在方法的末尾,我不能确定它是返回语句还是html.Telerik.Grid。但是,正如我所说,我遵循了演示中的模式:

    @(Html.Telerik().Grid<BerettaFarms.Models.FoodKind>()
        .Name("myName")
        .ToolBar(commands => commands.Insert())
        .DataKeys(keys => keys.Add(c => c.myTypeId))
        .DataBinding(dataBinding => {
            dataBinding.Ajax()
                .Select("SelectAjaxEditing", "myController")
                .Insert("InsertAjaxEditing", "myController")
                .Update("SaveAjaxEditing", "myController")
                .Delete("DeleteAjaxEditing", "myController");
        })       
        .Columns(columns => {            
            columns.Bound(o => o.Name).Width(200);            
            columns.Bound(o => o.Description).Width(400);
            columns.Command(commands => {
                commands.Edit();
                commands.Delete();
            }).Width(200);  
        })
        .DataBinding(dataBinding => dataBinding.Ajax().Select("AjaxIndex", "myController"))
        .Editable(editing => editing.Mode(GridEditMode.InLine))               
        .Sortable()
        .Scrollable(h => h.Height("700px"))       
        .Groupable()        
        .Filterable()
    ) 
    

    所以如果有人知道为什么重新绑定会失败?或者,如果它可归因于其他内容,请告诉我。

1 个答案:

答案 0 :(得分:0)

事实证明,这是与工具有关的问题之一,而不是实质内容。当您删除此方法中的所有断点并让代码运行时,它按预期工作。不知何故,当处于调试模式时,如果设置了断点,则会抛出错误并暂停应用程序。