1

'Region'のドロップダウンリストを含むフォームを作成しました。フォームが提出されたら、フォームから詳細を見ることができるようにしたいと思います。特に私は 'Region'の名前を表示したいが、現在は名前、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

実際にビューモデルを使用して調べる必要があります。 –

答えて

0

だけ

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

を使用するか、地域のためにDisplayTemplateを作成します。チェックアウト http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

+0

私は実際にこれをやった! Controller内の '' ViewData ["Region"] = new SelectList(db.Regions.ToList()、 "RegionName"); 'の' 'RegionName" '部分を取り除き、' @ Html.LabelFor(model => model.Region.RegionName) 'それは働いた! –

関連する問題