如何访问列表中的值<>在ViewModel为KendoUI网格
本文关键字:ViewModel 网格 KendoUI 何访问 访问 列表 | 更新日期: 2023-09-27 18:06:18
所以我有以下ViewModel:
public class PecosViewModel
{
public string SearchTerm { get; set; }
public List<NPIModel> NpiList { get; set; }
}
在cshtml页面上,我尝试做一些类似
的事情@(Html.Kendo().Grid<Models.ViewModels.PecosViewModel>()
.Name("npi-grid")
.Columns(columns =>
{
columns.Bound(c => c.NpiList)
})
)
我不能访问NpiList的任何属性(如FirstName或LastName)。
我可以做一些非常简单的事情:
foreach (var item in Model.NpiList)
{
<div>@item.NPI @String.Format("{0}, {1}", @item.ProviderLastName, @item.ProviderFirstName)</div>
}
但是我真的很想用剑道网格。
您正在定义类型为"PecosViewModel"的网格,而它应该是类型为"NPIModel"。如果你在视图中从动作传递ViewModel,那么你可以使用下面的代码:
@model Models.ViewModels.PecosViewModel
@(Html.Kendo().Grid(Model.NpiList)
.Name("npi-grid")
.Columns(columns =>
{
columns.Bound(c => c.NPI)
})
)
好吧,看起来你把事情搞混了。
网格应该根据您打算在此实例NPIModel
中使用的模型而不是您的视图模型键入。
代码将列从视图模型绑定到列表。
所以:
@(Html.Kendo().Grid<Models.ViewModels.PecosViewModel>()
.Name("npi-grid")
.Columns(columns =>
{
columns.Bound(c => c.NpiList)
})
)
你也需要改变它:
@(Html.Kendo().Grid<Models.ViewModels.NPIModel>()
.Name("npi-grid")
.Columns(columns =>
{
columns.Bound(c => c.FirstName)
})
)
注意:这假设两个类在同一个库中,如果没有相应的替换。
,那么您应该可以访问要绑定的模型属性。
如果你将结果提供给网格,而不执行读取操作,那么只需将现有列表发送给网格以进行数据绑定:
。 @ (Html.Kendo () .Grid (Model.NpiList)