答案 0 :(得分:0)
有一个code library project,它显示了如何创建自定义GridActionResultFactory。你可能会发现它很有帮助。
答案 1 :(得分:0)
您应该为Telerik Grid使用“特殊”视图模型。例如,如果您使用类似这样的数据库模型
public class Master {
public int Id { get; set; }
public string Name { get; set; }
public List<Detail> Details { get; set; }
}
public class Detail {
public int Id { get; set; }
public string Name { get; set; }
public Master Master { get; set; }
}
您需要创建视图模型,如下所示
public class MasterView {
public int Id { get; set; }
public string Name { get; set; }
}
public class DetailView {
public int Id { get; set; }
public string Name { get; set; }
public int MasterId { get; set; }
}
答案 2 :(得分:0)
如果您喜欢我,请考虑为telerik网格创建单独的视图模型是过度的,您可以将自己的Json提供给从匿名对象列表创建的网格:
//This goes in the View:
Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
// your column mappings go here
})
.DataBinding(dataBinding => dataBinding.Ajax().Select("_yourMethodReturningJson", "YourControllerName", new { yourJsonMethodParameter = yourViewModel.someField }))
.Pageable()
.Sortable()
.Render();
控制器中的Json方法如下所示:
public JsonResult _yourMethodReturningJson(YourType? yourJsonMethodParameter)
{
var list = database.SomeCollection.Select(x => new
{
SomeColumnName = x.SomeField
});
return Json(list, JsonRequestBehavior.AllowGet);
}
如果您愿意,可以在这里使用更好的Json库:http://james.newtonking.com/pages/json-net.aspx