1

我已经创建了一个带有“区域”下拉列表的表单。表单提交后,我希望能够从表单中查看详细信息。特别是我想显示“地区”的名称,但我目前正在获取名称,ID和标签。MVC 3剃须刀不显示从下拉列表中选择的项目

下拉列表控制器:

public ActionResult Add() 
{ 
    var db = new AssociateDBEntities(); 

    var region = db.Regions.Select(r => new { r.RegionId, r.RegionName }); 
    ViewBag.Regions = new SelectList(region.OrderBy(r => r.RegionName).AsEnumerable(), "RegionId", "RegionName"); 

    return View(); 
} 

'详细资料' 控制器:

public ActionResult Details(int id) 
{ 
    using (var db = new AssociateDBEntities()) 
    { 
     ViewData["Region"] = new SelectList(db.Regions.ToList(),"RegionName"); 

     return View(db.Associates.Find(id)); 
    } 
} 

'详细信息' 查看:

<div class="form-grid-1"> 
    <div class="display-label">@Html.LabelFor(model => model.Region)</div> 
    <div class="display-field">@Html.DisplayFor(model => model.Region)</div> 
</div> 

如何获取名称(RegionName)以显示?

+0

你应该真正考虑使用视图模型。 – 2012-03-17 19:35:23

回答

0

只需使用

@Html.LabelFor(model => model.Region.RegionName) 

或创建区域A DisplayTemplate。退房 http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

+0

我其实只是做了这个! 我在'ViewData [“Region”] = new SelectList(db.Regions.ToList(),“RegionName”);'在控制器中使用'@ Html.LabelFor(model => model.Region.RegionName)',它的工作! – 2012-03-17 17:13:35