我的Ajax帖子调用有问题。我有两个字段,一个用于金额,一个用于日期时间。我希望能够将这两个值作为空值传递,程序不应该崩溃。我的C#方法头看起来像这样
public ActionResult Update(int invoiceNumber, DateTime start,decimal payAmount = 0)
我的Jquery代码看起来像这样
$(document.body).on("click", ".changeInvoice", function (e) {
e.preventDefault();
var invoiceNr = $("#invoiceNumber").val();
var start = $("#date").val();
var payAmount = $("#payAmount").val();
console.log(invoiceNr);
var updateInvoice =
{
invoiceNumber: invoiceNr,
start: start,
payAmount: payAmount
}
$.ajax({
type: "POST",
url: "URL",
data: updateInvoice,
success: function (response) {
location.reload();
}
});
如果我现在运行程序,如果用户没有填写开始日期时间值,它会崩溃。但是,如果我设置日期时间?从我的C#代码开始,valdidation在没有崩溃的情况下工作但是我无法在我的C#代码中执行此操作。据我所知,你不能在可以为空的日期时间变量中添加天数。任何建议?:
i.FirstReminderDate = start.Date.AddDays(10);
答案 0 :(得分:0)
在我将可以为空的Datetime设置为参数后,我需要转换日期时间值:
public ActionResult Update(int invoiceNumber, DateTime? start,decimal payAmount = 0)
{
i.FirstReminderDate = Convert.ToDateTime(start).Date.AddDays(10);
}
随着一切正常
答案 1 :(得分:0)
并且根据您要设置的初始日期,也可以是从今天开始的10天,因为默认日期是:1/11/0001 12:00:00 AM,没有任何意义可以添加10天到此日期,但是如果你想像今天一样设置初始日期可以是
DateTime firstReminderDateFromToday = DateTime.Now.Date.AddDays(10);
if (start != null)
i.firstReminderDate = Convert.ToDateTime(start).Date.AddDays(10);
else
i.firstReminderDate = firstReminderDateFromToday;