【发布时间】:2015-07-23 10:21:05
【问题描述】:
当我使用简单模型并在视图示例中传递模型的副本时,一切正常。
在控制器中
AdvertisingStructure mc = context.AdvertisingStructures.Single(a => a.Id_show == id);
if (mc == null)
{
return HttpNotFound();
}
return View(mc);
在视图中
@model Sciencecom.Models.AdvertisingStructure
@Html.DropDownListFor(a => a.Owner.Id, new SelectList(owners, "id", "Name"))
所选列表的值
但是我在复杂对象中插入了这个模型,并在视图示例中传递了一个新的 copy-html.dropdownlist 停止工作(未选择列表的值)
新型号
public class CompositeModelForEdit
{
public AdvertisingStructure Structure;
public IEnumerable<Side> Sides;
public IEnumerable<Surface> Surfaces;
}
在控制器中
AdvertisingStructure mc = context.AdvertisingStructures.Single(a => a.Id_show == id);
List<Surface> surfaces=new List<Surface>();
foreach (var sides in mc.Sides)
{
foreach (var surface in sides.Surfaces)
{
surfaces.Add(surface);
}
}
return View(new CompositeModelForEdit() { Sides = mc.Sides, Structure = mc,Surfaces = surfaces});
在视图中
@model CompositeModelForEdit
@Html.DropDownListFor(a => a.Structure.Owner.Id, new SelectList(owners, "id", "Name"))
有什么想法(字段输入显示值)?
【问题讨论】:
-
您显示的代码看起来没有任何问题。无论如何,第一个示例是一个复杂模型 (
AdvertisingStructures.Owner.ID)。您是否检查过Owner.ID属性已正确分配并且其值与选项之一匹配?
标签: asp.net-mvc html.dropdownlistfor modelbinders