我的查询获取了所有正确的值并填充了选择列表,但我的下拉列表仅显示选择列表中的第一个值。我怎样才能显示船长的返回值?
视图模型:
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; }
}
答案 0 :(得分:0)
下拉列表中的每个选项都需要一个value属性和一个display属性,因此您可能需要将Team类的MemberSelectList对象更改为包含值和文本属性的IEnumerable。
要根据您拥有的字符串值设置下拉列表的默认值,请新建一个需要IEnumerable对象列表的SelectList,例如您拥有的值,属性,文本属性,然后是默认值对象。
@Html.DropDownListFor(x => x.ExistingTeams[c].Captain,
new SelectList(Model.MemberSelectList, "Value", "Text", Model.Captain)
)