gpt4 book ai didi

c# - 如何将嵌套模型属性绑定(bind)到剑道网格列?

转载 作者:太空狗 更新时间:2023-10-29 23:49:34 25 4
gpt4 key购买 nike

我有一个模型,其中包含另一个模型的数据类型列表的属性,如下所示。

public class Eatables
{
int id {get;set;}
string name{get;set;}
List<Ingredient> ingredientList{get;set;}
}

public class Ingredient
{
int id {get;set;}
quantity {get;set;}
calories {get;set;}
}

如果我想根据下面的 kendo header 显示可食用食品及其所需成分的列表。

SL.No | Eatable | Sugar(KG) | Salt(gram) | Oil(L)

如果糖成分 ID 为 2 且盐成分 ID 为 4,我将可食用列表传递给在显示剑道列表时消耗的 View 我有下面的列绑定(bind) LINQ 查询来获取成分的数量,如下所示。

columns.Bound(x => x.ingredientList.Find(x=>x.id=="2").quantity) -- to fetch sugar quantity
columns.Bound(x => x.ingredientList.Find(x=>x.id=="4").quantity) -- to fetch salt quantity

但是上面的查询并没有获取数量,尽管这些值在从 Controller 发送的模型中可用。如果我遗漏了任何查询,请提出建议,这一天我都在迷宫中解决问题。

最佳答案

正如评论中提到的那样,处理此问题的一种方法是展平模型,因为剑道网格设计为 work with flat data .假设我们将使用 ViewModel EatableSSOVM

public class EatableSSOViewModel
{
public int id {get;set;}
public string name{get;set;}
public string sugar {get; set;}
public string salt{get; set;}
public string oil{get; set;}
}

用你的 LINQ 映射查询糖、盐和油的值并将你的网格绑定(bind)到 List<EatableSSOViewModel>

但是根据这个link其中讨论了网格的客户端模板,一种选择可能是执行以下操作

columns.Template( @<text>
@item.ingredientList.Find(x=>x.id=="2").quantity
</text>
);

在模板中,您可以编写 Razor 语法并执行很多操作,这些操作会导致列可以绑定(bind)到的字符串输入。

关于c# - 如何将嵌套模型属性绑定(bind)到剑道网格列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43665686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com