繁体   English   中英

Asp.net MVC SelectList-设置值

[英]Asp.net MVC SelectList - Set Value

如何在选择列表上设置选择的值。 例如,假设我正在显示一个现有客户端,并且在该表单具有“性别”下拉列表的表单上,我希望选择“男性”(如果该内容已保存在数据库中),该怎么做?

当我建立模型时,我正在做类似的事情

public ActionResult Edit(string id)
        {
 var client= _clientService.FindById(id);
            var model = new ViewModels.Client()
            {
GenderId= client.GenderId,
GenderList= CreateGenderList(GenderId)
};
}

private IEnumerable<SelectListItem> CreateGenderList(int gId)
        {

            var list = Enum.GetValues(typeof(DomainObjects.Client.GenderList))
                .Cast<DomainObjects.Client.GenderList>()
                .Select(v => new SelectListItem { Text = v.ToString(), Value = ((int)v).ToString() });
//Need to set the selected value, how?


            return list.ToList();


        }

先感谢您。

您应该使用附加的SelectListItem.Selected属性,并将其设置为true。 例如:

var list = Enum.GetValues(typeof(DomainObjects.Client.GenderList))
            .Cast<DomainObjects.Client.GenderList>()
            .Select(v => new SelectListItem {
    Text = v.ToString(),
    Value = ((int)v).ToString()});

var maleGenderItem = list.Single(x => x.Text == "Male");
maleGenderItem.Selected = true;

做到了

var list = Enum.GetValues(typeof(DomainObjects.Client.GenderList))
                .Cast<DomainObjects.Client.GenderList>()
                .Select(v => new SelectListItem { Text = v.ToString(), Value = ((int)v).ToString(), Selected = gName.ToString() == ((int)v).ToString() });

            return list.ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM