Javascript 参数为null,但不应为';不可能
一大早我就遇到了一只奇怪的虫子。 错误很简单 参数字典包含“TimeRegPlanner.Controllers.TimeRegistrationController”中方法“System.Web.Mvc.ActionResult GeneratePDF(System.DateTime,System.DateTime)”的非null类型“System.DateTime”的参数“FirstDate”的null条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。 参数名称:参数 控制器看起来像这样Javascript 参数为null,但不应为';不可能,javascript,asp.net-mvc,Javascript,Asp.net Mvc,一大早我就遇到了一只奇怪的虫子。 错误很简单 参数字典包含“TimeRegPlanner.Controllers.TimeRegistrationController”中方法“System.Web.Mvc.ActionResult GeneratePDF(System.DateTime,System.DateTime)”的非null类型“System.DateTime”的参数“FirstDate”的null条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。 参数名称:参数 控制器
public ActionResult GeneratePDF(DateTime FirstDate, DateTime LastDate)
{
return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
下面是JavaScript:
function CreatePDF() {
var xyz = document.getElementById("regDate").valueAsDate
// var ShopDocCode = document.getElementById("werkkaart").value
var first = xyz.getDate() - xyz.getDay() + 1;
var last = first + 6; // last day is the first day + 6
var firstday = new Date(xyz.setDate(first)).toUTCString();
var lastday = new Date(xyz.setDate(last)).toUTCString();
alert(firstday);
alert(lastday);
var x = document.getElementById("checkBox").checked;
if (x === true) {
window.location = appPath + "/TimeRegistration/GeneratePDF?FirstDate=" + firstday + "&LastDate=" + lastday;
}
setTimeout(function () {
$("#dialog-Confirm").modal("hide");
}, 3000);
}
当我在第一天和最后一天调试并记录console.log时,我可以看到它们具有正确的值:
第一天:2019年6月24日星期一00:00:00 GMT最后一天:2019年6月30日星期日
00:00:00格林尼治标准时间
您应该更改为
ActionResult GeneratePDF(DateTime?FirstDate,DateTime?LastDate)
以防止案例FirstDate
和LastDate
无法正确转换为DateTime
类型
如果不想使用DateTime?
var firstday = new Date(xyz.setDate(first)).toISOString();
var lastday = new Date(xyz.setDate(last)).toISOString();
使用UTC字符串时,它不能强制转换为
DateTime
您应该更改为ActionResult GeneratePDF(DateTime?FirstDate,DateTime?LastDate)
以防止案例FirstDate
和LastDate
不能强制转换为DateTime
类型
如果不想使用DateTime?
var firstday = new Date(xyz.setDate(first)).toISOString();
var lastday = new Date(xyz.setDate(last)).toISOString();
使用UTC字符串,它不能转换为
DateTime
除了我以前从未见过valueAsDate之外,我肯定会对日期进行编码并删除路径中的空白
window.location = appPath + "/TimeRegistration/GeneratePDF"+
"?FirstDate=" + encodeURIComponent(firstday) +
"&LastDate=" + encodeURIComponent(lastday);
除了我以前从未见过valueAsDate之外,我当然会对日期进行编码并删除路径中的空白
window.location = appPath + "/TimeRegistration/GeneratePDF"+
"?FirstDate=" + encodeURIComponent(firstday) +
"&LastDate=" + encodeURIComponent(lastday);