datetime - ASP CORE 动态更新 viewbag 日期标题
问题描述
您好,我是 asp 核心的新手,并负责制作日记应用程序。单击上一周按钮时,我遇到了表格的日期标题发生变化的问题。当按下按钮时,它应该显示上一周和下一周的日期。如果这是一个非常愚蠢的问题,或者我打算做完全错误的事情,请提前道歉。它适用于在页面加载时获取当前周日期,但无法在周之间切换。
如果需要更多信息,请告诉我.. 谢谢 :)
index.cshtml
<input type="submit" method="index" value="Previous Week" class="btn btn-light" onclick="location.href = '@Url.Action("Index", "Appointment",new {mon = ViewBag.monday, tues = ViewBag.tuesday, wed = ViewBag.wednesday, thurs = ViewBag.Thursday, fri = ViewBag.friday, sat = ViewBag.saturday,sun = ViewBag.sunday})'"/>
<td width="87" align="center" <font color="#0000A0" size="1">Monday <br /> @ViewBag.monday </font></td>
<td width="87" align="center" <font color="#0000A0" size="1">Tuesday<br>@ViewBag.tuesday</font></td>
AppointmentController
[HttpGet]
public IActionResult Index()
{
ViewBag.monday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Monday).ToString("dd-MM-yyyy");
ViewBag.tuesday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Tuesday).ToString("dd-MM-yyyy");
ViewBag.wednesday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Wednesday).ToString("dd-MM-yyyy");
ViewBag.thursday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Thursday).ToString("dd-MM-yyyy");
ViewBag.friday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Friday).ToString("dd-MM-yyyy");
ViewBag.saturday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Saturday).ToString("dd-MM-yyyy");
ViewBag.sunday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Sunday + 7).ToString("dd-MM-yyyy");
return View();
}
[HttpPost]
public IActionResult Index(DateTime mon, DateTime tues, DateTime wed, DateTime thurs, DateTime fri, DateTime Sat, DateTime sun)
{
//previous week
ViewBag.Monday = mon.AddDays(-7);
ViewBag.tuesday = tues.AddDays(-7);
ViewBag.wednesday = wed.AddDays(-7);
ViewBag.thursday = thurs.AddDays(-7);
ViewBag.friday = fri.AddDays(-7);
ViewBag.saturday = Sat.AddDays(-7);
ViewBag.sunday = sun.AddDays(-7);
return View();
}
解决方案
Managed to solve this problem within a single action but i think ill space it out separate like Johan as said.. Ill post my current solution below incase it helps anyone in the future!
<input type="submit" method="index" value="Previous Week" class="btn btn-light" onclick="location.href = '@Url.Action("Index", "Appointment",new {state = 1,mon = ViewBag.monday, tues = ViewBag.tuesday,
wed = ViewBag.wednesday, thurs = ViewBag.Thursday, fri = ViewBag.friday, sat = ViewBag.saturday,
sun = ViewBag.sunday})'"/>
<input type="submit" value="Current Week" class="btn btn-light" onclick="location.href = '@Url.Action("Index", "Appointment",new {state = 0,mon = ViewBag.monday, tues = ViewBag.tuesday,
wed = ViewBag.wednesday, thurs = ViewBag.Thursday, fri = ViewBag.friday, sat = ViewBag.saturday,
sun = ViewBag.sunday})'"/>
<input type="submit" value="Next Week" class="btn btn-light" onclick="location.href = '@Url.Action("Index", "Appointment",new {state = 2,mon = ViewBag.monday, tues = ViewBag.tuesday,
wed = ViewBag.wednesday, thurs = ViewBag.Thursday, fri = ViewBag.friday, sat = ViewBag.saturday,
sun = ViewBag.sunday})'"/>
public IActionResult Index(int state, string mon, string tues, string wed, string thurs, string fri, string Sat, string sun)
{
//var mon
if (state <= 0)
{
ViewBag.monday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Monday).ToString("dd-MM-yyyy");
ViewBag.tuesday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Tuesday).ToString("dd-MM-yyyy");
ViewBag.wednesday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Wednesday).ToString("dd-MM-yyyy");
ViewBag.thursday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Thursday).ToString("dd-MM-yyyy");
ViewBag.friday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Friday).ToString("dd-MM-yyyy");
ViewBag.saturday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Saturday).ToString("dd-MM-yyyy");
ViewBag.sunday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Sunday + 7).ToString("dd-MM-yyyy");
return View();
}
else if(state == 1){
var pmon = Convert.ToDateTime(mon).AddDays(-7);
var ptues = Convert.ToDateTime(tues).AddDays(-7);
var pwed = Convert.ToDateTime(wed).AddDays(-7);
var pthur = Convert.ToDateTime(thurs).AddDays(-7);
var pfri = Convert.ToDateTime(fri).AddDays(-7);
var psat = Convert.ToDateTime(Sat).AddDays(-7);
var psun = Convert.ToDateTime(sun).AddDays(-7);
ViewBag.Monday = pmon.ToString("dd-MM-yyyy");
ViewBag.tuesday = ptues.ToString("dd-MM-yyyy");
ViewBag.wednesday = pwed.ToString("dd-MM-yyyy");
ViewBag.thursday = pthur.ToString("dd-MM-yyyy");
ViewBag.friday = pfri.ToString("dd-MM-yyyy");
ViewBag.saturday = psat.ToString("dd-MM-yyyy");
ViewBag.sunday = psun.ToString("dd-MM-yyyy");
return View();
}
else if (state == 2)
{
var pmon = Convert.ToDateTime(mon).AddDays(7);
var ptues = Convert.ToDateTime(tues).AddDays(7);
var pwed = Convert.ToDateTime(wed).AddDays(7);
var pthur = Convert.ToDateTime(thurs).AddDays(7);
var pfri = Convert.ToDateTime(fri).AddDays(7);
var psat = Convert.ToDateTime(Sat).AddDays(7);
var psun = Convert.ToDateTime(sun).AddDays(7);
ViewBag.Monday = pmon.ToString("dd-MM-yyyy");
ViewBag.tuesday = ptues.ToString("dd-MM-yyyy");
ViewBag.wednesday = pwed.ToString("dd-MM-yyyy");
ViewBag.thursday = pthur.ToString("dd-MM-yyyy");
ViewBag.friday = pfri.ToString("dd-MM-yyyy");
ViewBag.saturday = psat.ToString("dd-MM-yyyy");
ViewBag.sunday = psun.ToString("dd-MM-yyyy");
return View();
}
else
{
return View("NotFound");
}
推荐阅读
- azure-functions - 通过 VS 2019 的 zip 部署部署后 Azure Function v3 Time Trigger 未运行
- php - 登录后的 Woocommerce 重定向到客户角色的管理仪表板
- javascript - 如何对 0-0-0 之类的树节点进行排序
- quarkus - Quarkus 安全:模拟用户
- javascript - 我们可以使用 JavaScript 中的 fetch API 连接到套接字吗?
- php - Laravel Excel 导入返回错误日期
- javascript - MQTT 无法通过 TLS 连接
- junit - 方法注解,必须在一组特征之前起作用(Cucumber + Junit)
- flutter - 如何启用/禁用与倒数计时器相关的按钮(用于电话验证的“重新发送代码”按钮)?
- swift - 在 macOS Swift App 中获取 CPU 温度