繁体   English   中英

设置在ASP.NET MVC中的“编辑”期间选择的下拉列表值

[英]Set dropdownlist value selected during Edit in ASP.NET MVC

我正在使用Visual Studio 2013并创建MVC应用程序,并且具有如下所示的绑定下拉列表:

var list = context.Roles.OrderBy(r => r.Name).ToList()
    .Select(rr => new SelectListItem { Value = rr.Name.ToString(), Text = rr.Name })
    .ToList();  
ViewBag.Roles = list;

在CSHTML中:

@Html.DropDownList("Role", (IEnumerable<SelectListItem>)ViewBag.Roles, "Select ...")

现在,我要在“编辑时间”中设置选定的值!

我应该怎么做才能在下拉列表中选择该ID或名称,请帮助我做到这一点?

提前致谢。

我正在使用这样的代码:

foreach (var c in _countryService.GetAllCountries(true))
   model.AvailableCountries.Add(new SelectListItem { Text = c.Name, Value = c.Id.ToString(), Selected = (c.Id == model.CountryId) });

model.CountryId ====>获取编辑项ID

本集工作原理:

Selected = (c.Id == model.CountryId)

我已经这样做了,并且正在运行:

在后端代码中:

var roles = db.RoleTables.ToList();
emp.Role = GetSelectListItems(roles);

private IEnumerable<SelectListItem> GetSelectListItems(IEnumerable<RoleTable> elements)
        {
            foreach (var element in elements)
            {
                selectList.Add(new SelectListItem
                {
                    Value = element.Id,
                    Text = element.Name
                });
            }

            return selectList;
        }

在CSHTML中:

@Html.DropDownListFor(model => model.SelectedRole, Model.Role, "Select ...")

编辑时间:

var roles = db.RoleTables.ToList();
empreg.Role = GetSelectListItems(roles);
empreg.SelectedRole = db.RoleTable.Where(re => re.Name == employee.Role).Select(r => r.Id).FirstOrDefault();

感谢以下帖子和回复我的人: http : //nimblegecko.com/using-simple-drop-down-lists-in-ASP-NET-MVC/

暂无
暂无

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

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