注意:这使用的是。NET Core的Kendo UI程序包,尽管该程序包与Jquery版本有所不同,所以请仅关注此平台。
最初我有一个客户端下拉列表,该下拉列表绑定到Controller返回的IEnumerable<Client>
,并且运行良好:
@(Html.Kendo().DropDownList() .Name("ddlClient") .DataTextField("ClientName") .DataValueField("ClientID") .DataSource(source => { source.Read(read => { read.Action("GetClient", "Home"); }); }) )
但是在重组一些代码后,我希望能够从控制器返回一个
IEnumerable<ClientViewModel>
,其中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"); }); }) )
还要注意,我不能将其绑定到为视图本身定义的主要模型,因为这是一个完全不同的模型,这是一个独立的下拉列表。
我觉得以前我已经像这样引用了嵌套属性。
我在这里错了什么?
注意:这是使用Kendo UI for .NET Core程序包,尽管它与Jquery版本有所不同,所以请仅关注此平台。最初,我的客户端下拉列表为...
[您似乎非常接近:请记住,MVC默认将JSON对象键序列化为camelCase
: