2015-08-04 1 views
0

J'ai un problème avec mon appel post Ajax. J'ai deux champs un pour le montant et un pour Datetime. Je veux être en mesure de passer les deux valeurs en tant que valeurs nulles et le programme ne devrait pas planter. Mon C# méthode tête ressembler à ceComment passer la valeur NULL dans ajax appel jquery?

public ActionResult Update(int invoiceNumber, DateTime start,decimal payAmount = 0) 

Et mon code Jquery ressembler à ceci

$(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(); 

      } 
     }); 

Si je lance le programme maintenant ses plantages si un utilisateur ne remplit pas la valeur datetime de départ. Mais si je définis une date-heure? commencer dans mon code C# la valdidation fonctionne sans accident, mais je ne peux pas le faire dans mon code C#. Comme je l'ai compris, vous ne pouvez pas ajouter des jours à une variable datetime nullable. Toutes les suggestions ?:

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

Répondre

0

je besoin pour convertir la valeur datetime après avoir mis un annulable Datetime comme paramètre si:

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

Et que tout fonctionnait

0

et en fonction quand vous voulez pour fixer votre date initiale, peut également être 10 jours à partir d'aujourd'hui, car la date par défaut est: 1/11/0001 12:00:00 AM, il n'y a aucun sens d'ajouter 10 jours à cette date, mais si vous voulez définir la date initiale comme aujourd'hui peut être quelque chose comme

DateTime firstReminderDateFromToday = DateTime.Now.Date.AddDays(10); 

if (start != null) 
    i.firstReminderDate = Convert.ToDateTime(start).Date.AddDays(10); 
else 
    i.firstReminderDate = firstReminderDateFromToday; 
+0

Je n'ai pas pensé à ça. Je vous remercie! –