2011-07-17 107 views
0

填充一個選擇框我有下面的類:我的Razor視圖

public class Note : TableServiceEntity 
{ 
    public string Description { get; set; } 
    public string NoteDetailsJSON { get; set; } 
} 

它包含簡短的描述,我想投入在我看來,選擇列表。

我從表中獲取這樣的數據。

Notes = noteTable.GetAll() 

我有我的視圖模型是這樣的:

public IEnumerable<Note> Notes { get; set; } 

然而,當我嘗試填充我的選擇框,我只得到如下:

    @Html.DropDownListFor(
         x => x.Level, 
         new SelectList(Model.Notes, "Description", "Description"), 
         new { style = "display: inline;" } 
        ) 

         <select id="Level" name="Level" style="display: inline;"><option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 

</select> 

如何填充一些幫助選擇框將非常感激。

回答

0

我不明白你的問題是什麼。最有可能的是noteTable.GetAll()只是返回空對象。

因此,假如你有一個包含筆記列表以下視圖模型:

​​

和你的控制器動作正確填充這個模型:

public ActionResult Index() 
{ 
    var model = new MyViewModel 
    { 
     Notes = noteTable.GetAll().ToList() // make sure that this returns some data 
    }; 
    return View(model); 
} 

顯然是爲了確保最好的方式你問題不在數據源中是最初硬編碼一些數據:

public ActionResult Index() 
{ 
    var model = new MyViewModel 
    { 
     Notes = Enumerable.Range(1, 5).Select(x => new Note 
     { 
      Description = "note description " + x 
     }) 
    }; 
    return View(model); 
} 

在您的視圖中,您應該可以顯示下拉列表:

@model MyViewModel 
@Html.DropDownListFor(
    x => x.Level, 
    new SelectList(Model.Notes, "Description", "Description"), 
    new { style = "display: inline;" } 
)