我确定有更好的方法可以做到这一点,但我还没弄清楚。目前,我在整个ASP.NET站点的多个地方构建了这个SelectListItem(在几个控制器,一个视图模型等中)。大量的切割和粘贴。
public IEnumerable<SelectListItem> TimeSlotsList()
{
//Build Time Slot Drop Down
List<SelectListItem> li1 = new List<SelectListItem>();
li1.Add(new SelectListItem { Text = "Tues Mar. 15, 09:40am", Value = "1" });
li1.Add(new SelectListItem { Text = "Tues Mar. 15, 11:00am", Value = "2" });
li1.Add(new SelectListItem { Text = "Tues Mar. 15, 1:10pm", Value = "3" });
li1.Add(new SelectListItem { Text = "Tues Mar. 15, 2:10pm", Value = "4" });
li1.Add(new SelectListItem { Text = "Tues Mar. 15, 3:30pm", Value = "5" });
li1.Add(new SelectListItem { Text = "Wed Mar. 16, 8:30am", Value = "6" });
li1.Add(new SelectListItem { Text = "Wed Mar. 16, 9:30am", Value = "7" });
li1.Add(new SelectListItem { Text = "Wed Mar. 16, 11:00am", Value = "8" });
li1.Add(new SelectListItem { Text = "Wed Mar. 16, 1:10pm", Value = "9" });
li1.Add(new SelectListItem { Text = "Wed Mar. 16, 2:10pm", Value = "10" });
return (li1);
}
如何构建此SelectList一次并使用以下函数在我的应用程序中访问它:
ViewData["TimeSlots"] = TimeSlotsList();
我想我可以创建一个名为&#34; CustomFunctions&#34;的文件夹。我在该文件夹中为它构建了一个类,但我如何对它进行delcare并使用它。我需要额外的使用声明吗?我还可以在同一个类中放置构建其他列表的其他函数(如选择答案列表),还是每个函数都需要自己的类?
答案 0 :(得分:1)
您可以简单地创建一个帮助程序类,并为您需要的每个列表添加方法。下面的代码将在每次调用方法时创建列表的副本。
助手类:
namespace MyNamespace
{
public static class ListHelper
{
public static IEnumerable<SelectListItem> CreateTimeSlotsList()
{
List<SelectListItem> l = new List<SelectListItem>();
l.Add(new SelectListItem { Text = "Tues Mar. 15, 09:40am", Value = "1" });
l.Add(new SelectListItem { Text = "Tues Mar. 15, 11:00am", Value = "2" });
l.Add(new SelectListItem { Text = "Tues Mar. 15, 1:10pm", Value = "3" });
l.Add(new SelectListItem { Text = "Tues Mar. 15, 2:10pm", Value = "4" });
l.Add(new SelectListItem { Text = "Tues Mar. 15, 3:30pm", Value = "5" });
l.Add(new SelectListItem { Text = "Wed Mar. 16, 8:30am", Value = "6" });
l.Add(new SelectListItem { Text = "Wed Mar. 16, 9:30am", Value = "7" });
l.Add(new SelectListItem { Text = "Wed Mar. 16, 11:00am", Value = "8" });
l.Add(new SelectListItem { Text = "Wed Mar. 16, 1:10pm", Value = "9" });
l.Add(new SelectListItem { Text = "Wed Mar. 16, 2:10pm", Value = "10" });
return l;
}
}
}
<强>控制器:
namespace MyNamespace
{
public MyController : Controller
{
public ActionResult MyActionMethod()
{
ViewBag["TimeSlots"] = ListHelper.CreateTimeSlotsList();
return View();
}
}
}