我有MVC的包裝器劍道UI的一些問題。似乎IEnumerable不支持除count之外的任何聚合值。我得到的例外是: 類型'System.Linq.Enumerable'的泛型方法'Sum'與提供的類型參數和參數兼容。如果方法是非泛型的,則不應提供類型參數。的類型沒有泛型方法'點心「System.Linq.Enumerable」是兼容
我不知道如何解決這個問題,我也不是知道這是否是劍道的一個缺陷。
請注意,以下使用的聚合函數不是每說LINQ但什麼劍道UI的包裝提供了一個功能。有關更多信息,請參閱Kendo UI Documentation。
數據來源:
- 羅斯文
控制器:
public ActionResult Index() { return View(); }
public ActionResult Read([DataSourceRequest] DataSourceRequest request) { return GetView(request); }
private IEnumerable<dynamic> GetData() { var db = new NwEntities(); return db.Products; }
private JsonResult GetView(DataSourceRequest request) { return Json(GetData().ToDataSourceResult(request)); }
查看:
@model IEnumerable<dynamic>
@(
Html.Kendo().Grid(Model).Name("Grid")
.DataSource(ds =>
ds.Ajax()
.Model(m =>
{
m.Id("ProductID");
m.Field("ProductName", typeof(string));
m.Field("UnitPrice", typeof(decimal));
})
.Aggregates(aggregate => aggregate.Add(a => "UnitPrice").Count().Sum())
.Read(r => r.Action("Read", "Home"))
)
.Columns(columns =>
{
columns.Bound("ProductID");
columns.Bound("ProductName");
columns.Bound("UnitPrice").Format("{0:c}");
})
.Groupable()
)
'.Count之間的()之和()' - '.Aggregates(...)' - 這些只是無效。 – 2013-03-13 22:15:17
我想這是由你的'IEnumerable'造成的。你爲什麼要用'IEnumerable '?我也不知道KendoUI包裝器是否支持它...因此,試着用產品ID,產品名稱,單價打包產品類來查看它是否有效。 –
nemesv
2013-03-13 22:18:56
@TimothyShields'.Count()。Sum()'不是Linq方法,而是Kendo UI網格的配置API。參見[文檔。](http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/configuration) – nemesv 2013-03-13 22:20:20