2010-03-23 131 views
4

所以我不明白我在這裏做錯了什麼。我想在我的ASP.NET MVC 2應用程序的母版頁中填充一個DropDownList。ASP.NET MVC 2 DropDownList不呈現

Projects.Master

<div id="supaDiv" class="mainNav"> 
<% Html.DropDownList("navigationList"); %> 
</div> 

MasterController.cs

namespace ProjectsPageMVC.Controllers.Abstracts 
{ 
    public abstract class MasterController : Controller 
    { 
     public MasterController() 
     { 
      List<SelectListItem> naviList = new List<SelectListItem>(); 

      naviList.Add(new SelectListItem 
      { 
      Selected = true, 
      Text = "AdvanceWeb", 
      Value = "http://4168web/advanceweb/" 
      }); 

      naviList.Add(new SelectListItem 
      { 
      Selected = false, 
      Text = " :: AdvanceWeb Admin", 
      Value = "http://4168web/advanceweb/admin/admindefault.aspx" 
      }); 

      ViewData["navigationList"] = naviList; 
     } 
    } 
} 

DropDownList控件甚至沒有顯示出來的DOM,我很茫然,什麼我做錯了。

ProjectsController

namespace ProjectsPageMVC.Controllers 
{ 
    public class ProjectsController : MasterController 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 
    } 
} 

回答

7

變化

<% Html.DropDownList("navigationList"); %> 

<%=Html.DropDownList("navigationList") %> 
+0

等號是不同的,但我認爲你也必須使用包含SelectList – 2010-03-23 17:23:41

+2

+1的重載,我們都做這樣的愚蠢的東西:-) – 2010-03-23 17:24:30

+0

打我吧+1 – curtisk 2010-03-23 17:24:41

2

更改您的標記:

<%= Html.DropDownList("navigationList", (SelectList)ViewData["navigationList"]); %> 
+0

+1這是第一個完整答案。 – 2010-03-23 17:27:52

+0

這會引發錯誤:無法將類型爲「System.Collections.Generic.List'1 [System.Web.Mvc.SelectListItem]」的對象強制類型爲「System.Web.Mvc.SelectList」。 – 2010-03-23 17:31:27

+0

您在ViewData中的值應該是IEnumerable 2010-03-23 20:44:36