gpt4 book ai didi

asp.net-core - 如何将 Kendo DropDownList 绑定(bind)到嵌套对象

转载 作者:行者123 更新时间:2023-12-04 10:25:04 24 4
gpt4 key购买 nike

注意:这是使用 .NET Core 的剑道 UI 包虽然相似,但与 Jquery 版本有差异,所以请只关注这个平台。

最初我有一个绑定(bind)到 IEnumerable<Client> 的客户端下拉列表。从 Controller 返回,它工作正常:

 @(Html.Kendo().DropDownList()
.Name("ddlClient")
.DataTextField("ClientName")
.DataValueField("ClientID")
.DataSource(source => {
source.Read(read => {
read.Action("GetClient", "Home");
});
})
)

但是在重组了一些代码之后,我希望能够返回一个 IEnumerable<ClientViewModel>而是来自 Controller ,其中 ClientViewModel将会:

public class ClientViewModel{
public Client SelectedClient {get; set;}
public ClientDivison SelectedClientDivision {get; set;}
public SomeOtherProperty TheSomeOtherProperty {get; set;}
//etc
}

我将下拉列表修改为如下,但它没有按预期工作。我验证了 Controller 调用仍在触发并且仍在返回应有的记录(类型为 ClientViewModel )。

这是修改后的 DropDownList 代码

  @(Html.Kendo().DropDownList()
.Name("ddlClient")
.DataTextField("SelectedClient.ClientName")
.DataValueField("SelectedClient.ClientID")
.DataSource(source => {
source.Read(read => {
read.Action("GetClient", "Home");
});
})
)

另请注意,我无法将其绑定(bind)到为 View 本身定义的主模型,因为它完全是一个不同的模型,这是一个独立的下拉列表。

我觉得我以前引用过这样的嵌套属性。

我在这里做错了什么?

最佳答案

您似乎非常接近:请记住 MVC 将 JSON 对象键序列化为 camelCase默认情况下:

这对我有用:

  @(Html.Kendo().DropDownList()
.Name("ddlClient")
.DataTextField("selectedClient.clientName") // notice casing on both properties
.DataValueField("selectedClient.clientID") // notice casing on both properties
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetClient", "Home");
});
})
)

关于asp.net-core - 如何将 Kendo DropDownList 绑定(bind)到嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60659099/

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