1

Я создал форму с выпадающим списком для «Регион». Как только форма будет отправлена, я хочу иметь возможность просмотреть детали из формы. В частности, я хочу, чтобы имя «Регион» отображалось, но в настоящее время я получаю имя, идентификатор и метки.MVC 3 Razor не отображает выбранный элемент из выпадающего списка

Раскрывающийся список контроллеров:

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

Вы должны действительно изучить модели использования. –

ответ

0

Просто используйте

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

Или создать DisplayTemplate для региона. Выезд http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

+0

Я на самом деле просто сделал это !! Я избавился от '' RegionName '' в 'ViewData [" Region "] = new SelectList (db.Regions.ToList()," RegionName ");' в контроллере и использовал '@ Html.LabelFor (модель => model.Region.RegionName) 'и это сработало! –