DevExtreme 下拉框中的数据绑定不起作用

Data Binding in DevExtreme Drop Down Box not working

这里有人使用 DevExtreme 创建 ASP.NET MVC 项目吗?我只想创建一个简单的下拉框来绑定来自控制器的数据源。这是它在控制器内部的工作方式,我创建了一个对象列表,然后我将具有两个字段 "Key" 和 "Value" 的模型添加到列表中。所以我在控制器的 return 视图中传递了对象列表。

从screenshot above while I debugging the View, the Model is the list of object that I passed in, it has data for sure. You can see there are two fields "Key" and "Value" from each item, and I also specified the ValueExpr and DisplayExpr. When I run the project, this is the result I get. I just don't know why it is still blank while my data does exist. Am I missing some code?

可以看出

如果没有更多细节,很难确定,但是当我 运行 进入这个问题时,我通过检查修复了它:

  • 如果模型格式错误(不是 list/IEnumerable)
  • 模型 class 字段设置为私有

我也会看看这个 link/demo DevExtreme 的 SelectBox:https://js.devexpress.com/Demos/Widgetsgallery/Demo/SelectBox/Overview/Mvc/Light/

下拉框: https://js.devexpress.com/Demos/WidgetsGallery/Demo/DropDownBox/SingleSelection/Mvc/Light/

否则,这就是我用来填充我选择的编辑器的内容(我使用 Dapper 进行 SQL 调用):


查看

    @(Html.DevExtreme().SelectBox()
        .ID("DemoSelectBox")
        .DataSource(d => d.Mvc()
        .LoadAction("GetDemoData"))
        .DisplayExpr("DemoName")
        .ValueExpr("DemoValue"))

控制器

    [HttpGet]
    public ActionResult GetDemoData(DataSourceLoadOptions loadOptions)
    {
        List<DemoData> demoDataGrid= new List<DemoData>();

        using (SqlConnection connection = new SqlConnection(_connectionString))
        {
            demoDataGrid= connection.Query<DemoData>(
                sql: @"SELECT DemoValue
                        ,DemoName
                        FROM DemoDatabaseTable"
                ).ToList();
        }

        return Content(JsonConvert.SerializeObject(DataSourceLoader.Load(demoDataGrid, loadOptions)), "application/json");
    }

型号Class

public class DemoData
{
    public string DemoValue{ get; set; }
    public string DemoName{ get; set; }
}