首页 新闻 会员 周边

我用Telerik创建GridView,但是最后的显示效果为什么会是纯Json文本?

0
悬赏园豆:10 [已解决问题] 解决于 2016-03-18 14:37
 1 @(Html.Kendo().Grid<TelerikMvcApp1.Models.CustomerViewModel>()
 2     .Name("grid")
 3     .Columns(columns =>
 4     {
 5         columns.Bound(c => c.CustomerName).Width(240).Title("CustomerName");
 6         columns.Bound(c => c.CustomerTitle);
 7         columns.Bound(c => c.CompanyName);
 8         columns.Bound(c => c.Notes);
 9         columns.Bound(c => c.Country);
10         columns.Bound(c => c.Quantity);
11         columns.Bound(c => c.UnitPrice);
12         columns.Bound(c => c.BuyDate);
13     })
14     .Selectable(x => x.Mode(GridSelectionMode.Multiple).Type(GridSelectionType.Row))
15     .Resizable(resize => resize.Columns(true))
16     .Scrollable(scr => scr.Height("100%"))
17     .DataSource(dataSource => dataSource
18         .Ajax()
19         .Read(read => read.Action("CustomerList", "Home"))
20         .Model(model => {
21             model.Field(p => p.CustomerName);
22             model.Field(p => p.CustomerTitle);
23             model.Field(p => p.CompanyName);
24             model.Field(p => p.Notes);
25             model.Field(p => p.Country);
26             model.Field(p => p.Quantity);
27             model.Field(p => p.UnitPrice);
28             model.Field(p => p.BuyDate);
29         })
30         )
31     )

这是页面的Telerik代码

 

public ActionResult CustomerList([DataSourceRequest]DataSourceRequest request)
        {
            using (TestEntities db = new TestEntities())
            {
                var QueryResults = db.Customers.Select(p => p).ToList();
                if (QueryResults.Count > 0)
                {
                    foreach (var item in QueryResults)
                    {
                        item.CustomerID = item.CustomerID;
                        item.CustomerName = item.CustomerName == null ? "" : item.CustomerName;
                        item.CustomerTitle = item.CustomerTitle == null ? "" : item.CustomerTitle;
                        item.Notes = item.Notes == null ? "" : item.Notes;
                        item.CompanyName = item.CompanyName == null ? "" : item.CompanyName;
                        item.Country = item.Country == null ? "" : item.Country;
                        item.Quantity = item.Quantity;
                        item.UnitPrice = item.UnitPrice;
                        item.BuyDate = item.BuyDate;
                    }
                }

                return Json(QueryResults.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
            }
        }

这是后台的代码

 

 

这是页面的显示效果

 

求大神解答。

嗜血狂魔的主页 嗜血狂魔 | 初学一级 | 园豆:178
提问于:2016-03-18 11:19
< >
分享
最佳答案
0

你这个是Kendo  

Kendo就是一个js库

页面的Telerik代码肯定是要解析成js脚本的

 

收获园豆:10
刘宏玺 | 专家六级 |园豆:14020 | 2016-03-18 13:11

 刚刚理解错意思了

你请求的页面不对,你要请求你的view的那个地址

就是的第一个前台页面的那个地址

你看你的页面的连接的截图,是CustomerList

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-18 13:19

@刘宏玺: 不是前一个是方法名,后一个是控制器名吗?刚才我把页面上的telerik代码注释掉,结果页面还是显示的JSON,可见应该是CustomerList方法返回的时候直接输出页面了,没有进入CustomerList.cshtml中处理。这个怎么破??

嗜血狂魔 | 园豆:178 (初学一级) | 2016-03-18 14:12

@嗜血狂魔: 你在后台写

 return View(request);

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-18 14:15

@刘宏玺: 谢谢,我已经解决了,我把功能实现的方法写在了控制器里,没有了return View()所以页面没效果,功能方法应该在控制器方法之外重新写一个,我把概念搞混了,还是谢谢你。金币给你了。

嗜血狂魔 | 园豆:178 (初学一级) | 2016-03-18 14:37
其他回答(1)
0

return Json(QueryResults.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);

吴瑞祥 | 园豆:29449 (高人七级) | 2016-03-18 11:26

不是一样的吗?

支持(0) 反对(0) 嗜血狂魔 | 园豆:178 (初学一级) | 2016-03-18 11:39

@嗜血狂魔: 我是搞不懂你这样写又要求视图是什么意思.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2016-03-20 15:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册