Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在列表中循环以获取;勾选“;项目并将其分配给属性-HTTPPost_C#_Asp.net Mvc_List_Object_Viewmodel - Fatal编程技术网

C# 在列表中循环以获取;勾选“;项目并将其分配给属性-HTTPPost

C# 在列表中循环以获取;勾选“;项目并将其分配给属性-HTTPPost,c#,asp.net-mvc,list,object,viewmodel,C#,Asp.net Mvc,List,Object,Viewmodel,我试图让foreach循环通过checklistbox进行检查,并返回所选IETM的ID,并将其设置为ViewModel中的Month属性。到目前为止,我已经在屏幕上显示了复选框,并在ViewModel中获得了正确的参数(我希望如此)。当前,foreach语句由于列表为null而出现错误。我怎样才能解决这个问题 这是控制器: public class SchedulerController : Controller { // GET: Scheduler [HttpGet]

我试图让foreach循环通过checklistbox进行检查,并返回所选IETM的ID,并将其设置为ViewModel中的Month属性。到目前为止,我已经在屏幕上显示了复选框,并在ViewModel中获得了正确的参数(我希望如此)。当前,foreach语句由于列表为null而出现错误。我怎样才能解决这个问题

这是控制器:

public class SchedulerController : Controller
{
    // GET: Scheduler
    [HttpGet]
    public ActionResult SchedulerIndex()
    {

        List<Values> lst = new List<Values>();
        List<Values> lst2 = new List<Values>();
        List<Values> lst3 = new List<Values>();


        foreach (Values.Months month in Enum.GetValues(typeof(Values.Months)))
        {
            lst.Add(new Values { Month = month, IsChecked = false });
        }

        foreach (Values.DaysOfTheWeek day in Enum.GetValues(typeof(Values.DaysOfTheWeek)))
        {
            lst2.Add(new Values { DaysOfWeek = day, IsChecked = false });
        }


        //var DaysOfTheMonth = Enumerable.Range(1, 31);

        //foreach (var days in DaysOfTheMonth)
        //{
        //    lst3.Add(new Values { DayOfMonth = days, IsChecked = false });
        //}

        Values val = new Values();
        val.Jobs = new List<SelectListItem>();
        val.Jobs.Add(new SelectListItem() { Text = "Email", Value = "1", Selected = false });
        val.Jobs.Add(new SelectListItem() { Text = "Backup", Value = "2", Selected = false });
        val.Jobs.Add(new SelectListItem() { Text = "Start Application", Value = "3", Selected = false });
        val.Jobs.Add(new SelectListItem() { Text = "Job4", Value = "4", Selected = false });
        val.Jobs.Add(new SelectListItem() { Text = "Job5", Value = "5", Selected = false });




        List<Values> month11 = new List<Values>();
        month11.Add(new Values { monthID = 0, monthName = "Jan", IsChecked = false });
        month11.Add(new Values { monthID = 1, monthName = "Feb", IsChecked = false });
        month11.Add(new Values { monthID = 2, monthName = "Mar", IsChecked = false });
        month11.Add(new Values { monthID = 3, monthName = "Apr", IsChecked = false });
        month11.Add(new Values { monthID = 4, monthName = "May", IsChecked = false });
        month11.Add(new Values { monthID = 5, monthName = "Jun", IsChecked = false });
        month11.Add(new Values { monthID = 6, monthName = "Jul", IsChecked = false });
        month11.Add(new Values { monthID = 7, monthName = "Aug", IsChecked = false });
        month11.Add(new Values { monthID = 8, monthName = "Sep", IsChecked = false });
        month11.Add(new Values { monthID = 9, monthName = "Oct", IsChecked = false });
        month11.Add(new Values { monthID = 10, monthName = "Nov", IsChecked = false });
        month11.Add(new Values { monthID = 11, monthName = "Dec", IsChecked = false });



        List<Values> day6 = new List<Values>();
        day6.Add(new Values { dayID = 0, dayName = "Mon", IsChecked = false });
        day6.Add(new Values { dayID = 1, dayName = "Tue", IsChecked = false });
        day6.Add(new Values { dayID = 2, dayName = "Wed", IsChecked = false });
        day6.Add(new Values { dayID = 3, dayName = "Thu", IsChecked = false });
        day6.Add(new Values { dayID = 4, dayName = "Fri", IsChecked = false });
        day6.Add(new Values { dayID = 5, dayName = "Sat", IsChecked = false });
        day6.Add(new Values { dayID = 6, dayName = "Sun", IsChecked = false });

        val.MonthInfo = month11;

        val.DayInfo = day6;

        ViewBag.lst = lst;
        ViewBag.lst2 = lst2;
        ViewBag.lst3 = lst3;

        return View(val);
    }

    [HttpPost]
    public ActionResult ScheduleInfo(int Job, int Second, int Minute, int Hour, object Month, object DaysOfWeek)//,  string Month, string DaysOfWeek)// int DayOfMonth)
    {
        var val = new Values();

        val.Job = Job;
        val.Second = Second;
        val.Minute = Minute;
        val.Hour = Hour;


        foreach(var month in val.MonthInfo)
        {
            if (month.IsChecked == true)
            {
                val.Month = month.monthID;
            }
        }

        foreach (var day in val.DayInfo)
        {
            if (day.IsChecked == true)
            {
                val.DaysOfWeek = day.dayID;
            }
        }

        //val.Month = (int)((Values.Months)Enum.Parse(typeof(Values.Months), Month));
        //val.DaysOfWeek = (int)((Values.DaysOfTheWeek)Enum.Parse(typeof(Values.DaysOfTheWeek), DaysOfWeek));


        //        val.DayOfMonth = DayOfMonth; 

        return View();
    }


}
公共类调度控制器:控制器
{
//获取:调度程序
[HttpGet]
public ActionResult SchedulerIndex()
{
List lst=新列表();
List lst2=新列表();
List lst3=新列表();
foreach(Enum.GetValues中的Values.Months(typeof(Values.Months)))
{
添加(新值{Month=Month,IsChecked=false});
}
foreach(Enum.GetValues中的Values.DaysOfTheWeek-day(typeof(Values.DaysOfTheWeek)))
{
lst2.Add(新值{DaysOfWeek=day,IsChecked=false});
}
//var DaysOfTheMonth=可枚举范围(1,31);
//foreach(var天数,以日为单位,以月为单位)
//{
//lst3.Add(新值{DayOfMonth=days,IsChecked=false});
//}
Values val=新值();
val.Jobs=新列表();
添加(新建SelectListItem(){Text=“Email”,Value=“1”,Selected=false});
添加(新建SelectListItem(){Text=“Backup”,Value=“2”,Selected=false});
添加(新建SelectListItem(){Text=“启动应用程序”,Value=“3”,Selected=false});
添加(新的SelectListItem(){Text=“Job4”,Value=“4”,Selected=false});
添加(新的SelectListItem(){Text=“Job5”,Value=“5”,Selected=false});
列表月份11=新列表();
month11.Add(新值{monthhid=0,monthName=“Jan”,IsChecked=false});
month11.Add(新值{monthhid=1,monthName=“Feb”,IsChecked=false});
month11.Add(新值{monthhid=2,monthName=“Mar”,IsChecked=false});
month11.Add(新值{monthhid=3,monthName=“Apr”,IsChecked=false});
month11.Add(新值{monthhid=4,monthName=“May”,IsChecked=false});
month11.Add(新值{monthhid=5,monthName=“Jun”,IsChecked=false});
month11.Add(新值{monthhid=6,monthName=“Jul”,IsChecked=false});
month11.Add(新值{monthhid=7,monthName=“Aug”,IsChecked=false});
month11.Add(新值{monthhid=8,monthName=“Sep”,IsChecked=false});
month11.Add(新值{monthhid=9,monthName=“Oct”,IsChecked=false});
month11.Add(新值{monthhid=10,monthName=“Nov”,IsChecked=false});
month11.Add(新值{monthhid=11,monthName=“Dec”,IsChecked=false});
List day6=新列表();
day6.Add(新值{dayID=0,dayName=“Mon”,IsChecked=false});
day6.Add(新值{dayID=1,dayName=“Tue”,IsChecked=false});
day6.Add(新值{dayID=2,dayName=“Wed”,IsChecked=false});
day6.Add(新值{dayID=3,dayName=“Thu”,IsChecked=false});
day6.Add(新值{dayID=4,dayName=“Fri”,IsChecked=false});
day6.Add(新值{dayID=5,dayName=“Sat”,IsChecked=false});
day6.Add(新值{dayID=6,dayName=“Sun”,IsChecked=false});
val.MonthInfo=month11;
val.DayInfo=day6;
ViewBag.lst=lst;
ViewBag.lst2=lst2;
ViewBag.lst3=lst3;
返回视图(val);
}
[HttpPost]
public ActionResult ScheduleInfo(int Job,int Second,int Minute,int Hour,object Month,object DaysOfWeek)//,string Month,string DaysOfWeek)//int daysofmonth)
{
var val=新值();
val.Job=工作;
val.Second=秒;
val.Minute=分钟;
瓦尔小时=小时;
foreach(var月,以val.MonthInfo表示)
{
如果(month.IsChecked==true)
{
val.Month=Month.monthhid;
}
}
foreach(val.DayInfo中的var日)
{
如果(day.IsChecked==true)
{
val.DaysOfWeek=day.dayID;
}
}
//val.Month=(int)((Values.Months)Enum.Parse(typeof(Values.Months),Month));
//val.DaysOfWeek=(int)((Values.DaysOfTheWeek)Enum.Parse(typeof(Values.DaysOfTheWeek),DaysOfWeek));
//val.DayOfMonth=DayOfMonth;
返回视图();
}
}
以下是ViewModel(我没有使用enum,我计划去掉它):

公共枚举月份
{
Jan=0,
2月=1日,
Mar=2,
Apr=3,
五月四日,
6月=5日,
7月=6日,
八月七日,
九月八日,
10月9日,
11月=10日,
12月=11日
}
公共枚举DaysOfTheWeek
{
Mon=0,
星期二=1,
Wed=2,
Thu=3,
Fri=4,
Sat=5,
太阳=6
}
公共整数月日{get;set;}
公共对象月{get;set;}
公共对象DaysOfWeek{get;set;}
已检查公共布尔值{get;set;}
公共整数秒{get;set;}
公共整数分钟{get;set;}
公共整数小时{get;set;}
公共int作业{get;set;}
公共列表作业{get;set;}
公共整数{get;set;}
公共字符串monthName{get;set;}
公共列表MonthInfo{get;set;}
public int dayID{get;set;}
公共字符串dayName{get;set;}
公共列表DayInfo{get;set;}
}
以下是视图:

    @using (Html.BeginForm("ScheduleInfo", "Scheduler", FormMethod.Post))
{
    <center>
        <div style="text-align: center">
            <div class="form-group">
                @Html.DropDownListFor(m => m.Job, Model.Jobs)
            </div>
        </div>
    </center>

    <center>
        <div class="form-group" style="display:inline-block; padding-right:100px">
            <div class=" col-md-2">
                @Html.LabelFor(model => model.Second, "Second")
                @Html.TextBoxFor(model => model.Second)
            </div>
        </div>
        <div class="form-group" style="display:inline-block; padding-right:100px">
            <div class=" col-md-2">
                @Html.LabelFor(model => model.Minute, "Minute")
                @Html.TextBoxFor(model => model.Minute)
            </div>
        </div>
        <div class="form-group" style="display:inline-block; padding-right:100px">
            <div class=" col-md-2">
                @Html.LabelFor(model => model.Hour, "Hour")
                @Html.TextBoxFor(model => model.Hour)
            </div>
        </div>
    </center>
    <br />
    <br />

    <center>
        <div class="col-1">
            <ul class="list-group">
                <li class="list-group-item-heading list-group-item active">
                    <h4 class="list-group-item-text">Select the month(s) the task should be set at</h4>
                </li>
                @Html.HiddenFor(m => m.monthID)
                @Html.DisplayFor(m => m.monthName)
                @for (int i = 0; i < Model.MonthInfo.Count; i++)
                {
                    <li class="list-group-item" style="display:inline-block">
                        <div class="checkbox-inline">
                            @Html.HiddenFor(m => m.MonthInfo[i].monthID)
                            @Html.CheckBoxFor(m => m.MonthInfo[i].IsChecked)
                            @Html.LabelFor(m => m.MonthInfo[i].IsChecked, Model.MonthInfo[i].monthName)
                        </div>
                    </li>
                }
            </ul>
        </div>
    </center>

    <center>
        <div class="col-2">
            <ul class="list-group">
                <li class="list-group-item-heading list-group-item active">
                    <h4 class="list-group-item-text">Select the day(s) the task should be set at</h4>
                </li>
                @Html.HiddenFor(m=>m.dayID)
                @Html.DisplayFor(m=>m.dayName)
                @for(int i = 0; i < Model.DayInfo.Count; i++)
                {
                    <li class="list-group-item" style="display:inline-block">
                        <div class="checkbox-inline">
                            @Html.HiddenFor(m => m.DayInfo[i].dayID)
                            @Html.CheckBoxFor(m => m.DayInfo[i].IsChecked)
                            @Html.LabelFor(m => m.DayInfo[i].IsChecked, Model.DayInfo[i].dayName)
                        </div>
                    </li>
                }
            </ul>
        </div>
    </center>

  <input type="submit" value="Submit Data" id="btnSubmit" />

}
@使用(Html.BeginForm(“ScheduleInfo”,“ScheduleInfo”,“Scheduler”,FormMethod.Post))
{
@DropDownListFor(m=>m.Job,Model.Jobs)
@Html.LabelF
    @using (Html.BeginForm("ScheduleInfo", "Scheduler", FormMethod.Post))
{
    <center>
        <div style="text-align: center">
            <div class="form-group">
                @Html.DropDownListFor(m => m.Job, Model.Jobs)
            </div>
        </div>
    </center>

    <center>
        <div class="form-group" style="display:inline-block; padding-right:100px">
            <div class=" col-md-2">
                @Html.LabelFor(model => model.Second, "Second")
                @Html.TextBoxFor(model => model.Second)
            </div>
        </div>
        <div class="form-group" style="display:inline-block; padding-right:100px">
            <div class=" col-md-2">
                @Html.LabelFor(model => model.Minute, "Minute")
                @Html.TextBoxFor(model => model.Minute)
            </div>
        </div>
        <div class="form-group" style="display:inline-block; padding-right:100px">
            <div class=" col-md-2">
                @Html.LabelFor(model => model.Hour, "Hour")
                @Html.TextBoxFor(model => model.Hour)
            </div>
        </div>
    </center>
    <br />
    <br />

    <center>
        <div class="col-1">
            <ul class="list-group">
                <li class="list-group-item-heading list-group-item active">
                    <h4 class="list-group-item-text">Select the month(s) the task should be set at</h4>
                </li>
                @Html.HiddenFor(m => m.monthID)
                @Html.DisplayFor(m => m.monthName)
                @for (int i = 0; i < Model.MonthInfo.Count; i++)
                {
                    <li class="list-group-item" style="display:inline-block">
                        <div class="checkbox-inline">
                            @Html.HiddenFor(m => m.MonthInfo[i].monthID)
                            @Html.CheckBoxFor(m => m.MonthInfo[i].IsChecked)
                            @Html.LabelFor(m => m.MonthInfo[i].IsChecked, Model.MonthInfo[i].monthName)
                        </div>
                    </li>
                }
            </ul>
        </div>
    </center>

    <center>
        <div class="col-2">
            <ul class="list-group">
                <li class="list-group-item-heading list-group-item active">
                    <h4 class="list-group-item-text">Select the day(s) the task should be set at</h4>
                </li>
                @Html.HiddenFor(m=>m.dayID)
                @Html.DisplayFor(m=>m.dayName)
                @for(int i = 0; i < Model.DayInfo.Count; i++)
                {
                    <li class="list-group-item" style="display:inline-block">
                        <div class="checkbox-inline">
                            @Html.HiddenFor(m => m.DayInfo[i].dayID)
                            @Html.CheckBoxFor(m => m.DayInfo[i].IsChecked)
                            @Html.LabelFor(m => m.DayInfo[i].IsChecked, Model.DayInfo[i].dayName)
                        </div>
                    </li>
                }
            </ul>
        </div>
    </center>

  <input type="submit" value="Submit Data" id="btnSubmit" />

}