Asp.net mvc 2 用于ASP.NET MVC2 Ajax绑定的Telerik网格不';t工作/导致错误操作的路线

Asp.net mvc 2 用于ASP.NET MVC2 Ajax绑定的Telerik网格不';t工作/导致错误操作的路线,asp.net-mvc-2,telerik-grid,Asp.net Mvc 2,Telerik Grid,网格加载b/c服务器绑定。 所有其他操作要么发布到错误的路线,要么发布到默认操作: 向/EditOrder操作插入帖子 将帖子编辑到 地址: 这是没有意义的(sddd是ItemID) 未到达控制器中AJAX部分内的任何断点。 知道我做错了什么吗 谢谢, 丹尼 以下是查看代码: <%= Html.Telerik().Grid(Model.ItemsInOrderList) .Name("ItemsInOrderGrid

网格加载b/c服务器绑定。 所有其他操作要么发布到错误的路线,要么发布到默认操作: 向/EditOrder操作插入帖子 将帖子编辑到 地址: 这是没有意义的(sddd是ItemID) 未到达控制器中AJAX部分内的任何断点。 知道我做错了什么吗

谢谢, 丹尼

以下是查看代码:

 <%=
                Html.Telerik().Grid(Model.ItemsInOrderList)
                    .Name("ItemsInOrderGrid")
                                    .DataKeys(dataKeys =>
                                    {
                                        dataKeys.Add(e => e.OrderID);
                                        dataKeys.Add(e => e.ItemID);
                                    })
                    .ToolBar(commands => commands.Insert())
                    .DataBinding(dataBinding =>
                        dataBinding.Ajax()    //Ajax binding
                .Select("ItemsGridAjax", "Orders", new {OrderID = Model.order.OrderID})
                .Insert("InsertItemsGridAjax", "Orders", new {OrderID = Model.order.OrderID})
                .Update("UpdateItemsGridAjax", "Orders")
                .Delete("DeleteItemsGridAjax", "Orders"))
                    //.BindTo(Model.ItemsInOrderList)
                    .Columns(c =>
                        {
                            c.Bound(o => o.ItemID);
                            c.Bound(o => o.OrderID).Column.Visible = false;
                            c.Bound(o => o.ItemDescription);
                            c.Bound(o => o.NumOfItems);
                            c.Bound(o => o.CostOfItem);
                            c.Bound(o => o.TotalCost);
                            c.Bound(o => o.SupplyDate);
                            c.Command(commands =>
                                {
                                    commands.Edit();
                                    commands.Delete();
                                }).Width(200);
                        })

            %>

我不确定您是否需要在这些Ajax操作上使用
[HttpPost]
属性(我认为只要
[GridAction]
就足够了),或许可以尝试删除这些属性,看看是否可以解决问题

如果不起作用,请尝试在您的操作中返回
GridModel
,如下所示:

        [GridAction]
        public ActionResult InsertItemdGridAjax(int OrderID)
        {
            //Omitted Code

           return View(new GridModel(ordersRepository.GetOrderItemsTK(OrderID)));
        }
您还可以使用类似于以下的语法(因为我认为
GridModel
喜欢使用
total
):

[GridAction]
public ActionResult InsertItemdGridAjax(int OrderID)
{
//省略代码
//获取订单项列表
List List=ordersepository.GetOrderItemsTK(OrderID));
返回视图(新GridModel)
{
数据=列表,
总计=列表。计数
});
}

A也有同样的问题,但在MVC3中

解决方案只是将适当的*.js脚本添加到项目中,请参见 并将
@(Html.Telerik().scriptregister().jQuery(false))
添加到_Layout.cshtml文件的末尾


A那就好了

没有,没有帮助。这就像“AJAX”被禁用了一样,它会转到整页文章。第一个AJAX调用——没有调用ItemsGridAjax,因此我得到一个空网格。如果我通过服务器绑定将其禁用(如示例中所示,在ctor中为网格提供ItemsOrder列表-这是唯一有效的方法,然后我可以看到编辑和删除不起作用…),我怀疑这是否有效-但值得一试。是否可以将[HttpPost]替换为[AcceptVerbs(HttpVerbs.Post)]?不知道这是否会有任何不同:)啊,我想我已经弄明白了-你返回的是一个视图而不是一个GridModel-我会为它添加代码,但我认为这可能会解决它。谢谢,但它没有帮助。我已经添加了它,正如我在telerik的示例中看到的那样(但不是在文档中),我在所有AJAX函数上设置了断点,它们甚至没有到达,编辑/插入使用另一个未处理的参数发布整个页面:我想知道是否有一些必要的AJAX/telerik文件没有被引用。我以前遇到过一些关于它们的组件的问题,几乎所有这些问题都需要我引用特定的文件。谢天谢地,他们的文档非常好,论坛非常快速/活跃。
        [GridAction]
        public ActionResult InsertItemdGridAjax(int OrderID)
        {
            //Omitted Code

           return View(new GridModel(ordersRepository.GetOrderItemsTK(OrderID)));
        }
        [GridAction]
        public ActionResult InsertItemdGridAjax(int OrderID)
        {
            //Omitted Code

            //Get List of Order Items
            List<OrderItem> list = ordersRepository.GetOrderItemsTK(OrderID));

            return View(new GridModel
            {
                Data = list,
                Total = list.Count
            });
        }