【问题标题】:How to pass NULL value in ajax jquery call?如何在ajax jquery调用中传递NULL值?
【发布时间】:2015-10-26 18:50:42
【问题描述】:

我的 Ajax post call 有问题。我有两个字段,一个用于金额,一个用于日期时间。我希望能够将这两个值都作为空值传递,并且程序不应该崩溃。我的 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# 代码开始,验证工作不会崩溃,但是我不能在我的 C# 代码中执行此操作。据我了解,您不能将天数添加到可为空的日期时间变量。有什么建议吗?:

i.FirstReminderDate = start.Date.AddDays(10);

【问题讨论】:

    标签: jquery ajax model-view-controller asp.net-ajax


    【解决方案1】:

    在我设置了一个可以为空的日期时间作为参数之后,我需要转换日期时间值:

       public ActionResult Update(int invoiceNumber, DateTime? start,decimal payAmount = 0)
    {
        i.FirstReminderDate = Convert.ToDateTime(start).Date.AddDays(10);
    }
    

    然后一切正常

    【讨论】:

      【解决方案2】:

      并且根据您想要设置初始日期的时间,也可以是从今天开始的 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;
      

      【讨论】:

      • 我没想到。谢谢!
      猜你喜欢
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 2019-09-03
      • 1970-01-01
      • 2020-02-08
      相关资源
      最近更新 更多