Asp.net mvc 当绑定到IEnumerable并使用ASP.NET MVC时,如何设置KendoUI下拉列表的默认值

Asp.net mvc 当绑定到IEnumerable并使用ASP.NET MVC时,如何设置KendoUI下拉列表的默认值,asp.net-mvc,kendo-ui,kendo-dropdown,dropdownlistfor,Asp.net Mvc,Kendo Ui,Kendo Dropdown,Dropdownlistfor,我有这个模型(包含IEnumerableofints),我想为这个IEnumerable中的每个元素创建KendoUIDropDownList: public class PlayersInGameViewModel { public PlayersInGameViewModel() { this.FirstTeamPlayers = Enumerable.Range(1, 8).Select(x => 0).ToList(); } pub

我有这个模型(包含
IEnumerable
of
int
s),我想为这个
IEnumerable
中的每个元素创建KendoUI
DropDownList

public class PlayersInGameViewModel
{
    public PlayersInGameViewModel()
    {
        this.FirstTeamPlayers = Enumerable.Range(1, 8).Select(x => 0).ToList();
    }

    public IList<int> FirstTeamPlayers { get; set; }
}
这是我在视图中创建
DropDownList
s的部分:

@for (var i = 0; i < 8; i++)
{
    @(Html.Kendo().DropDownListFor(x => x.FirstTeamPlayers[i])
        .DataTextField("Name")
        .DataValueField("Value")
        .Filter("contains")
        .MinLength(1)
        .DataSource(source =>
        {
            source.Read(read =>
            {
                read.Action("PlayersRead", "PlayersInGames");
            })
            .ServerFiltering(false);
        }) 
    )
    <br />
}
以下是HTML格式的结果:

<input data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." id="FirstTeamPlayers_2_" name="FirstTeamPlayers[2]" type="text" value="3" />
<script>
    jQuery(function(){jQuery("#FirstTeamPlayers_2_").kendoDropDownList({"dataSource":{"transport":{"read":{"url":"/Administration/PlayersInGames/PlayersRead"},"prefix":""},"schema":{"errors":"Errors"}},"dataTextField":"Name","filter":"contains","minLength":1,"valuePrimitive":true,"dataValueField":"Value"});});
</script>

jQuery(function(){jQuery(“#FirstTeamPlayers_2”).kendoDropDownList({“dataSource”:{“transport”:{“read”:{“url”:“/Administration/PlayersInGames/PlayersRead”},“prefix”:“},“schema”:{“errors”:“errors”},“dataTextField”:“Name”,“filter”:“contains”,“minLength”:1,“valuePrimitive”:true,“dataValueField”:“Value”});
正如您所见,所有内容似乎都正确生成,HTML中存在
value=“3”
,但浏览器中的小部件显示了所有下拉列表的默认值:

控制台上没有JavaScript错误

我错过了什么为什么KendoUI不尊重给定值?

编辑:

此外,所有值都已正确加载:


目前我正在使用一种解决方法:通过
助手中的
SelectedIndex(Model.firstTeamPlayer[I])
方法设置值

以下是我的工作观点:

@for (var i = 0; i < 8; i++)
{
    @(Html.Kendo().DropDownListFor(x => x.FirstTeamPlayers[i])
        .DataTextField("Name")
        .DataValueField("Value")
        .Filter("contains")
        .SelectedIndex(Model.FirstTeamPlayers[i])
        .MinLength(1)
        .DataSource(source =>
        {
            source.Read(read =>
            {
                read.Action("PlayersRead", "PlayersInGames");
            })
            .ServerFiltering(false);
        }) 
    )
}
(变量i=0;i<8;i++) { @(Html.Kendo().DropDownListFor(x=>x.firstTeamPlayer[i]) .DataTextField(“名称”) .DataValueField(“值”) .过滤器(“包含”) .SelectedIndex(Model.FirstTeamPlayer[i]) .MinLength(1) .DataSource(source=> { source.Read(Read=> { 阅读。动作(“玩家阅读”、“玩家阅读”); }) .ServerFiltering(false); }) ) }
<input data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." id="FirstTeamPlayers_2_" name="FirstTeamPlayers[2]" type="text" value="3" />
<script>
    jQuery(function(){jQuery("#FirstTeamPlayers_2_").kendoDropDownList({"dataSource":{"transport":{"read":{"url":"/Administration/PlayersInGames/PlayersRead"},"prefix":""},"schema":{"errors":"Errors"}},"dataTextField":"Name","filter":"contains","minLength":1,"valuePrimitive":true,"dataValueField":"Value"});});
</script>
@for (var i = 0; i < 8; i++)
{
    @(Html.Kendo().DropDownListFor(x => x.FirstTeamPlayers[i])
        .DataTextField("Name")
        .DataValueField("Value")
        .Filter("contains")
        .SelectedIndex(Model.FirstTeamPlayers[i])
        .MinLength(1)
        .DataSource(source =>
        {
            source.Read(read =>
            {
                read.Action("PlayersRead", "PlayersInGames");
            })
            .ServerFiltering(false);
        }) 
    )
}