MVC4创建下拉列表以捕获营业时间分钟

时间:2014-08-23 22:15:12

标签: asp.net asp.net-mvc asp.net-mvc-4

我想在我的mvc4应用程序中捕获营业时间

例如,我为其中一天创建了下拉列表,例如星期一

                     <div class="label-r">
                        Monday
                    </div>
                    <div>     


                    @Html.DropDownList("HoursMON", 
                        Enumerable.Range(1, 12).Select(i => new SelectListItem { Value = i.ToString(),
                                    Text = i.ToString()}),"") 

                          @Html.DropDownList("MINMON", 
                        Enumerable.Range(0, 60).Select(i => new SelectListItem { Value = i.ToString(),
                                    Text = i.ToString() }),"")

                    @Html.DropDownList("AMMON", new List<SelectListItem>{
                            new SelectListItem {Text = "AM", Value="AM"},
                            new SelectListItem {Text = "PM", Value="PM"}},"")

                        :

                      @Html.DropDownList("HoursMON2", 
                        Enumerable.Range(1, 12).Select(i => new SelectListItem { Value = i.ToString(),
                                    Text = i.ToString()}),"") 

                          @Html.DropDownList("MINMON2", 
                        Enumerable.Range(0, 60).Select(i => new SelectListItem { Value = i.ToString(),
                                    Text = i.ToString() }),"")


                    @Html.DropDownList("AMMON2", new List<SelectListItem>{
                        new SelectListItem {Text = "AM", Value="AM"},
                        new SelectListItem {Text = "PM", Value="PM"}},"")

要为其他日子创建我需要多次复制代码x6吗?似乎不对。建议将其清理以显示下拉列表并在控制器中捕获它们。

2 个答案:

答案 0 :(得分:0)

只需创建一个文本块:

@{
    var hours = Enumerable.Range(1, 12)
       .Select(i => new SelectListItem { Value = i.ToString(), Text = i.ToString()});
}

@Html.DropDownList("HoursMON", hours, "")
@Html.DropDownList("HoursTUE", hours, "")

等等......你可以对其他变量做同样的事情。如果您担心每天必须编写DropDownLists,那么您可以创建一个分部类并执行此操作:

@Html.Partial("_Hours", "MON")
@Html.Partial("_Hours", "TUE")

然后在你的_Hours.cshtml中你会做这样的事情:

@model string

@{
    var hours = Enumerable.Range(1, 12)
       .Select(i => new SelectListItem { Value = i.ToString(), Text = i.ToString()});
}

@Html.DropDownList("Hours" + Model, hours, "")

但是,理想情况下,您应该使用强类型模型并使用EditorTemplates代替..

答案 1 :(得分:0)

为您的下拉菜单创建一个局部视图,并将其用于所有七天。