2010-03-23 90 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