用于Edit()[Razor]视图的DropDown,预先加载来自模型的数据

Tim*_*een 2 razor c#-4.0 asp.net-mvc-3 drop-down-menu

我的Create()视图中的下拉列表工作完美.

但是在Edit()视图中,我无法获取在Create()期间提交的数据,以便在DropDowns中显示,并在Create()上输入值

我现在只有文本框,并且非常希望在下拉列表中显示数据代表以便于选择.

这是一个例子:

Create()View - 一个下拉列表用于EmployeeTypes,另一个下拉列表选择为EmployeeTypeId

现在我如何在Edit()视图中显示相同的下拉列表,但是已经选择了EmployeeId值?


我有一个用于Create()视图的EmployeeViewModel

但我只是将模型直接传递给Edit()视图

我应该为Edit()视图创建某种Employee"partial class"吗?处理IEnumerable列表?

并设置:

var employeeTypes = context.EmployeeTypes.Select(et => new SelectListItem
            {
                Value = et.EmployeeTypeId.ToString(),
                Text = et.Type.ToString()
            });
Run Code Online (Sandbox Code Playgroud)

或者我应该将它们作为ViewData传递?

如果是这样,你怎么做一个List作为ViewData并让它显示为@ Html.DropDownList与从@Model传入的值作为defualt值?

Tim*_*een 8

我最终以这种方式恭维,它就像一场梦一样.

控制器代码:

 SelectList typelist = new SelectList(context.CompanyType.ToList(), "CompanyTypeId", "Type", context.CompanyType);
            ViewData["CompanyTypes"] = typelist;
Run Code Online (Sandbox Code Playgroud)

查看代码:

@Html.DropDownList("CompanyTypeId", (IEnumerable<SelectListItem>) ViewData["CompanyTypes"])
Run Code Online (Sandbox Code Playgroud)