2013-06-11 162 views
0

我想從數據庫中獲取細節進行編輯。它實際上工作正常,我的問題是,我也試圖從數據庫中填充數據到兩個下拉列表(這些下拉列表正常工作與「創建」ActionResultMVC LINQ查詢和下拉列表

請大家提供一些例子,如何包括在控制器中的下拉列表要傳遞到視圖?

請參閱下面的內容:評論(/ /)內的區域是我想要做的,但它只會使視圖中的字段爲空。評論工作正常(帶來數據庫的細節,雖然沒有下拉列表)

// GET: /PropertiesHut/EditRent/3 
    public ActionResult EditRent(int id) 
    { 
     //AdDetail ad = db.AdDetails.Single(a => a.AdType == id); 

     //var vm = new InsertAd() 
     //  { 
     //   AdDetail = ad, 
     //   PropertyType = new SelectList(db.PropertyTypes.OrderBy(o => 
     //   o.PropertyName).ToList(), "PropertyId", "PropertyName"), 

     //   State = new SelectList(db.States.OrderBy(o => 
     //   o.StateShortName).ToList(), "StateId", "StateShortName") 
     //  }; 
     //return View(vm); 

// TH IS是什麼在起作用

 var viewModel = from a in db.AdDetails 
         where a.AdType == id 
         select a; 

     return View(viewModel.FirstOrDefault()); 
    } 
+0

把下拉框的內容到ViewBag。 –

回答

0

控制器:

ViewBag.RgnId = new SelectList(
    _db.Regions 
    .OrderBy(r => r.name) 
    .Select(x => new { x.id, x.name }), "id", "name", model.RgnId); 

HTML:

@Html.DropDownListFor(model => model.RgnId, (SelectList)ViewBag.RgnId, "Any Region") 
+0

謝謝羅伯特!而我的回報觀點將是一樣的?我需要的只是在linq查詢下面添加它?謝謝! – WPalombini

+0

正確,您的返回視圖將保持不變。第一個代碼片段中包含LINQ查詢,您顯然必須將其更改爲您的。正如你所看到的,我的模型有一個屬性「RgnId」,並且我將ViewBag條目命名爲相同的東西(ViewBag.RgnId),但我認爲你絕對不必,但是如果它們匹配,我發現它更容易。 –

+0

伴侶,感謝您的幫助和耐心向新手解釋這一點。非常感謝你。它正在工作! – WPalombini