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