Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
List 将项目添加到现有列表mvc5_List_Model View Controller_Asp.net Mvc 5_Dropdown_Add - Fatal编程技术网

List 将项目添加到现有列表mvc5

List 将项目添加到现有列表mvc5,list,model-view-controller,asp.net-mvc-5,dropdown,add,List,Model View Controller,Asp.net Mvc 5,Dropdown,Add,(我是一名新开发人员)我有一个列表,我把它放在一个viewBag中,以便在我的视图中进行下拉,我想在这个列表中添加3个元素,以便我们可以在下拉列表的末尾看到它们。我为员工制作了一份时间表,我有一份员工在一周内工作项目的下拉列表,如果员工休假而不是工作,我想在下拉列表的末尾添加3个选项“空缺”、“计划外缺勤”、“计划内缺勤” var projectAssignment = (from pa in db.ProjectAssignment

(我是一名新开发人员)我有一个列表,我把它放在一个viewBag中,以便在我的视图中进行下拉,我想在这个列表中添加3个元素,以便我们可以在下拉列表的末尾看到它们。我为员工制作了一份时间表,我有一份员工在一周内工作项目的下拉列表,如果员工休假而不是工作,我想在下拉列表的末尾添加3个选项“空缺”、“计划外缺勤”、“计划内缺勤”

var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });

            List<ProjectTimesheetList> projectAssignments = projectAssignment.ToList();

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            });

            ViewBag.ProjectTimeSHeet = projectAssignments;
这是我对项目的要求:

var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });
ViewBag.ProjectTimeSHeet = projectAssignment;
var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });

            List<ProjectTimesheetList> projectAssignments = projectAssignment.ToList();

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            });

            ViewBag.ProjectTimeSHeet = projectAssignments;
这是一个添加我的TimesSheet的模式,我想在下拉列表的末尾添加3 daysoff类型,所以在本例中是在“NatureBooker”之后

var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });

            List<ProjectTimesheetList> projectAssignments = projectAssignment.ToList();

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            });

            ViewBag.ProjectTimeSHeet = projectAssignments;
这是我下拉列表的代码:

<select name="' + row + '_' + col + '" class="custom-select" id="tsCell_' + row + '_' + col + '" data-row="' + row + '" data-col="' + col + '">' +
                    '<option value="">----Select----</option>@Html.Raw(projsStr)</select>';
var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });

            List<ProjectTimesheetList> projectAssignments = projectAssignment.ToList();

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            });

            ViewBag.ProjectTimeSHeet = projectAssignments;
'+
'----选择----@Html.Raw(projsStr)';
解决方案:

var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });

            List<ProjectTimesheetList> projectAssignments = projectAssignment.ToList();

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            });

            ViewBag.ProjectTimeSHeet = projectAssignments;
var projectAssignment=(来自db.projectAssignment中的pa
将p连接到pa上的db.Projects中。projectd等于p.ID
其中pa.EmployeeId==EmployeeId&&pa.StartDate!=null&&(pa.EndDate==null | | pa.EndDate>=DateTime.Now)
选择新建项目时间表列表
{
ProjectName=p.ProjectName,
projectd=pa.projectd
});
List projectAssignments=projectAssignment.ToList();
添加(新项目时间表列表)
{
ProjectName=“空缺”,
projectd=-1,
});
添加(新项目时间表列表)
{
ProjectName=“计划外缺勤”,
projectd=-2,
});
添加(新项目时间表列表)
{
ProjectName=“计划缺勤”,
projectd=-3,
});
ViewBag.ProjectTimeSHeet=项目分配;

结果是:

仍然不清楚您到底想要什么,但是如果我的猜测是正确的,您可能希望将“假”项目添加到您绑定到的可枚举项中(顺便说一句,不是列表)

var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });

            List<ProjectTimesheetList> projectAssignments = projectAssignment.ToList();

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            });

            ViewBag.ProjectTimeSHeet = projectAssignments;
只要你明白这是绝对错误的,并且是被当场解雇的理由,你就可以:

var projectAssignment = (from pa in db.ProjectAssignment
                                     join p in db.Projects on pa.ProjectId equals p.ID
                                     where pa.EmployeeId == EmployeeId && pa.StartDate !=null && (pa.EndDate == null || pa.EndDate >= DateTime.Now)
                                     select new ProjectTimesheetList
                                     {
                                         ProjectName = p.ProjectName,
                                         ProjectId = pa.ProjectId
                                     });

            List<ProjectTimesheetList> projectAssignments = projectAssignment.ToList();

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            });

            projectAssignments.Add(new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            });

            ViewBag.ProjectTimeSHeet = projectAssignments;
ViewBag.ProjectTimeSHeet = projectAssignment
    .Concat(new[]
        {
            new ProjectTimesheetList
            {
                ProjectName = "Vacancy",
                ProjectId = -1,
            },
            new ProjectTimesheetList
            {
                ProjectName = "Unplanned Absence",
                ProjectId = -2,
            },
            new ProjectTimesheetList
            {
                ProjectName = "Planned Absence",
                ProjectId = -3,
            },
        });

问题是什么?你有错误吗?@Duston没有,这个查询有效,但我不知道如何添加我想要的3个休假选项,即:“空缺”、“计划外缺勤”、“计划内缺勤”。所以我想在我的下拉列表中看到一个例子:项目1-项目2项目3,空缺,计划外缺勤,计划内缺勤问题仍然不清楚。如果您不想在前端添加更多项目,请提供更多详细信息您到底想要什么?谢谢您的回答。我修改了我的消息并添加了我想要的图像,但我会尝试使用您发送的代码,看看结果如何view bag变量拼写错误是您的,您为它选择了一个很好的位置,在一个动态变量中,没有编译时检查。是的,基本上这就是我想要的,但我不理解您的最后一句话“只要你明白这是绝对错误的,而且是被当场解雇的理由,你就可以:“哈哈?我有个错误:无法创建'XXX.Models.ProjectTimesheetList'类型的常量值。”。在此上下文中只支持基元类型或枚举类型。我需要查看导致该错误的代码,到目前为止您显示的代码(基本上没有)似乎表明我的代码应该工作。我不是开玩笑,不仅是整个模式都错了,它还显示您的数据库是在没有外键的情况下设置的,否则在这些假ID上会失败。这是因为缺乏对关系数据库设计的基本理解,而MVC将其公诸于世对MVC本身来说是一个有利因素。