我開發一個應用程序使用ASP.MVC,劍道和OpenAccess。自定義屬性部分類
爲特定實體創建自定義屬性後,我試圖將其綁定到我的數據源和網格失敗。
偏類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErpMvc.OpenAccess
{
public partial class Customer
{
public string CustomProperty
{
get
{
return "My Custom Property Text";
}
}
}
}
服務
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ErpMvc.OpenAccess;
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
namespace ErpMvc.Services
{
public class CustomerService
{
public static IEnumerable<Customer> GetCustomers()
{
var dbContext = new EntitiesModel();
return dbContext.Customers.Select(customer => new Customer
{
CustomerID = customer.CustomerID,
FirstName = customer.FirstName,
CustomProperty = customer.CustomProperty
});
}
}
}
查看
@model IEnumerable<ErpMvc.OpenAccess.Customer>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@(Html.Kendo().Grid(Model)
.Name("Customers")
.Columns(columns =>
{
columns.Bound(c => c.FirstName).Title("First Name");
columns.Bound(c => c.CustomProperty).Title("Custom Property");
})
.Pageable()
.Sortable()
.Editable(editable => editable.Mode(GridEditMode.InLine))
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(customerID => customerID.CustomerID))
.Read(read => read.Action("Customers_Read", "Customer"))
.Update(update => update.Action("Customers_Update", "Customer"))
.PageSize(50)
)
)
控制器
public ActionResult Customers_Read([DataSourceRequest] DataSourceRequest request)
{
return Json(CustomerService.GetCustomers().ToDataSourceResult(request));
}
-
個
錯誤消息我是從VS
屬性或索引「CustomProperty的」越來越不能被分配到 - 它是隻讀
定義的對我的CustomProperty的「設置{}」後,此錯誤消息已解決,但我開始獲取另一個
(...)如果'CustomProperty'是屬性,請將FieldAlias或Storage屬性添加到它或聲明它爲字段的別名。
非常感謝@Nic注意到我的錯誤和您的幫助。所有最好的朋友;) – 2014-09-30 15:44:51
我覺得@Nicholas發佈的答案忘記了ToDataSourceResult()將應用過濾和分頁。因此,如果您在調用ToDataSourceResult之前調用GetCustomers,那麼將使用默認查詢命中數據,這將返回所有行(比如說10000條記錄)!! – 2016-12-13 08:08:11
@MadaniBenghia是的,這是正確的,我只展示瞭如何讓它工作。我已經更新了我的答案。 – Nicholas 2016-12-13 10:11:31