dropdownlist不显示正确的值

时间:2015-10-16 15:17:28

标签: asp.net-mvc

我的查询获取了所有正确的值并填充了选择列表,但我的下拉列表仅显示选择列表中的第一个值。我怎样才能显示船长的返回值?

视图模型:

vm.updateRoom= function(ctx){
    var test = ko.toJSON(ctx);

    if(validator1 && validator2 && validator3 && validator4){
        return $.ajax(
                {
                    type: "POST",
                    contentType: 'application/json; charset=utf-8',
                    url: 'myurl',
                    data: { room: test }
                }).success(function (data) {
                      //...
                }).fail(function (xhr,error,status) {
                      //..
       }); 
    }
};

查看:

public class EditTeamsView : BaseCommunityView
    {   
       ...
        public IList<Domain.Team> ExistingTeams { get; set; }            
     ...
        public EditTeamsView()
        {               
            ExistingTeams = new List<Domain.Team>();

        }

    }

 public class Team
    { 
        ...       
        public string Captain { get; set; }
        public IEnumerable<SelectListItem> MemberSelectList { get; set; }
    }

1 个答案:

答案 0 :(得分:0)

下拉列表中的每个选项都需要一个value属性和一个display属性,因此您可能需要将Team类的MemberSelectList对象更改为包含值和文本属性的IEnumerable。

要根据您拥有的字符串值设置下拉列表的默认值,请新建一个需要IEnumerable对象列表的SelectList,例如您拥有的值,属性,文本属性,然后是默认值对象。

见这里:https://msdn.microsoft.com/en-us/library/system.web.mvc.selectlist.selectlist(v=vs.118).aspx#M:System.Web.Mvc.SelectList

@Html.DropDownListFor(x => x.ExistingTeams[c].Captain, 
    new SelectList(Model.MemberSelectList, "Value", "Text", Model.Captain)
)