【发布时间】:2014-09-29 16:27:01
【问题描述】:
我正在使用 ASP.MVC、Kendo 和 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 上定义了“set{}”后,此错误消息已得到解决,但我开始收到另一个错误消息
(...) 如果“CustomProperty”是一个属性,请将 FieldAlias 或 Storage 属性添加到它或将其声明为字段的别名。
【问题讨论】:
标签: c# .net kendo-ui kendo-grid kendo-asp.net-mvc