我正在尝试将日期列表生成到Asp.Net MVC5中的selectList中。我希望连续5周有一个星期开始的列表,但是在解决该问题时遇到了实际的问题。
理想情况下,我会在创建ActionMethod时需要它,因为我想将其用于该周记录的时间。
我一直在尝试使用下面的示例如何在星期初获取DateTime?并陷入困境。
我所拥有的是模型:
public class TimeSheet
{
public int TimeSheetId { get; set; }
public DateTime WeekCommencing { get; set; }
public int MondayHours { get; set; }
public int TuesdayHours { get; set; }
public int WednesdayHours { get; set; }
public int ThursdayHours { get; set; }
public int FridayHours { get; set; }
public int SaturdayHours { get; set; }
public int SundayHours { get; set; }
public bool CompletedTimeSheet { get; set; }
public int PlanId { get; set; }
public virtual ICollection<Plan> Plan { get; set; }
}
控制器:创建方法
// GET: TimeSheets/Create
public ActionResult Create()
{
DateTime today = DateTime.Today;
if(today.DayOfWeek == DayOfWeek.Monday && today.Day <= 7)
ViewBag
return View();
}
// POST: TimeSheets/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "TimeSheetId,WeekCommencing,MondayHours,TuesdayHours,WednesdayHours,ThursdayHours,FridayHours,SaturdayHours,SundayHours,CompletedTimeSheet,PlanId")] TimeSheet timeSheet)
{
if (ModelState.IsValid)
{
db.TimeSheets.Add(timeSheet);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(timeSheet);
}
请有人可以帮助我或提供建议
非常感谢马克
不确定“连续5周”到底是什么意思,所以我刚刚做了前5周。完全未经测试,所以如果有任何问题,然后说。
编辑:已编辑,因此仅在接下来的5个星期一进行。
由于您尚未发布尝试过的内容,因此对于您想要的内容有点模棱两可。
public class TimeSheet
{
public DateTime DateSelected { get; set; }
}
public ActionResult Create()
{
int weekCount = 5;
List<DateTime> listDates = new List<DateTime>();
for (int i = 0; i < (weekCount * 7); ++i) //Get next 5 weeks
{
//Adds only next 5 mondays to the list of dates
if (DateTime.Today.AddDays(i).DayOfWeek == DayOfWeek.Monday)
listDates.Add(DateTime.Today.AddDays(i));
}
ViewData["DateList"] = new SelectList(listDates);
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "TimeSheetId,WeekCommencing,MondayHours,TuesdayHours,WednesdayHours,ThursdayHours,FridayHours,SaturdayHours,SundayHours,CompletedTimeSheet,PlanId,DateSelected")] TimeSheet timeSheet)
{
if (ModelState.IsValid)
{
db.TimeSheets.Add(timeSheet);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(timeSheet);
}
@Html.DropDownListFor(x => x.DateSelected, (SelectList)ViewData["DateList"], new {@class = "form-control"})
@Html.ValidationMessageFor(x => x.DateSelected, "", new {@class = "text-danger"})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句