Вы лучше всего поместите этот материал в свою модель, например,
в контроллере
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
ViewData["Time"] = DateTime.Now.ToString(CultureInfo.InvariantCulture);
var mdl = new List<SelectListItem>
{
new SelectListItem
{
Value = "1",
Text = "Module One"
},
new SelectListItem
{
Value = "2",
Text = "Module Two"
}
};
ViewData["moduleList"] = new SelectList(mdl, "Value", "Text");
var model = new HomeModel
{
SelectedItem = 1,
items = mdl
};
return View(model);
}
}
Теперь создайте модель
namespace MvcApplication1.Models
{
public class HomeModel
{
public int SelectedItem { get; set; }
public IEnumerable<SelectListItem> items { get; set; }
}
}
Ваша страница будет выглядеть на тестовом сайте
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.HomeModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2><%: ViewData["Message"] %></h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
<div>
<%=Html.DropDownList("SelectedItem", Model.items)%>
</div>
</asp:Content>
Теперь объяснение, вы создали модель для представления, и эта модель возвращается на страницу контроллером, который страница наследует от ViewPage, который принимает общий аргумент модели, предоставленной ему контроллером
В разметке написано: «Дайте мне выпадающий список html и отметьте выбранный элемент как первый выбранный, элементы поступают из модели (именно это и предоставил ваш контроллер).
В реальном мире данные будут поступать с вашего уровня данных, а не напрямую с контроллера (мне нравится как можно меньше кода в контроллере)
редактирование:
У вас есть опечатка для вашего примера попробуйте это
<%= Html.DropDownList("moduleList") %>