构建可在整个应用程序中访问的SelectListItem

时间:2016-03-14 19:26:52

标签: c# asp.net-mvc model-view-controller drop-down-menu

我确定有更好的方法可以做到这一点,但我还没弄清楚。目前,我在整个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并使用它。我需要额外的使用声明吗?我还可以在同一个类中放置构建其他列表的其他函数(如选择答案列表),还是每个函数都需要自己的类?

1 个答案:

答案 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();
        }
    }
}