将 setDate 值传递给控制器操作方法的 ENDDATE 参数后,在 endDate 参数中获取 null 值



Javascript code

function setDate(id) {
debugger;
$('#doctorId').val(id.name);
$('#hhduration').val(id.id);
var datesArray = [];
var d = new Date();
var startdate = d.toLocaleString();
var ed = new Date();
ed.setDate(d.getDate() + 12);
var Enddate = ed.toLocaleString();
var doctorId = id.name;
$.ajax({
type: "POST",
url: '@Url.Action("GetAvailabledates", "Home")',
data: { startdate: startdate, enddate: Enddate, doctorid: doctorId },
datatype: "json",
async: false
}).done(function (data) {
try {
if (data.length > 0) {
debugger;
datesArray = data;
}

}
catch (e) {
}
});

MVC 控制器方法

[维基邮报] public ActionResult GetAvailableDates(DateTime startdate,DateTime? enddate,string doctorid( { int[] 日期 = 空; 使用 (DepartmentOperations dos = new DepartmentOperations((( {  日期 = 做事。获取可用日期(开始日期,结束日期,医生ID(; } 返回 Json(dates, JsonRequestBehavior.AllowGet(; }

使用 Json Signify 使 Enddate 不为空 如果您不传递日期,那么它将传递为 '0001-01-01 00:00:00'

还有一件事,如果你想设置可为空的东西,那么它应该是控制器参数中的最后一个

https://cmatskas.com/asp-net-mvc-webapi-optional-parameters/

如果您在使用当前方法时遇到问题,并且想尝试使用其他方法来传递 enddate 参数,则可以考虑在 POST 请求中使用 JSON 有效负载。下面是如何修改控制器操作方法以及向其发送数据的方式的示例:

public ActionResult GetAvailabledates([FromBody] DateInputModel dateInput)
{
int[] dates = null;
using (DepartmentOperations dos = new DepartmentOperations())
{
dates = dos.GetAvailabledates(dateInput.StartDate, dateInput.EndDate, dateInput.DoctorId);
}
return Json(dates, JsonRequestBehavior.AllowGet);
}
public class DateInputModel
{
public DateTime StartDate { get; set; }
public DateTime? EndDate { get; set; }
public string DoctorId { get; set; }
}

最新更新