Il mio problema è che quando provo a inviare un doppio o decimale tramite ajax nel mio controller MVC C# il valore è sempre nullo. Posso inviare il valore come stringa e posso inviare numeri interi senza problemi. Perché non posso inviare valori con decimali? Quando controllo la richiesta inviata dal client, il valore corretto è lì (Dati modulo è price=84.50
).C# Il controller MVC non può ottenere valori decimali o doppi dalla richiesta POST Ajax
Errore:
The parameters dictionary contains a null entry for parameter 'price' of non-nullable type 'System.Decimal'
Html:
<input type="number" step="1" class="form-control" name="price" id="price">
<button type="button" class="btn btn-success">Send</button>
Javascript:
$('.btn-success').click(function() {
//var price = $('#price').val(); - Did not work
//var price = Number($('#price').val()); Did not work
var price = Number($('#price').val()).toFixed(2); // Does not work
$.ajax({
url: 'PriceFunction',
type: 'POST',
data: {
price: price,
}
}).done(function() {
}).fail(function() {
console.log("Error in ajaxfunction!");
});
});
C#:
[HttpPost]
public void PriceFunction(decimal price)
{
// I have tried with decimal, double and double?.
}
manca un **. ** dopo '' val() '' –
Mi spiace che ci fosse nel mio codice originale, lo ho formattato per adattarlo a Stackoverflow e devo averlo cancellato. – Ogglas
non è stato possibile riprodurre questo problema, "var price = $ ('# price'). Val();" ha funzionato perfettamente il problema vive un po 'altrove. Posso postare una schermata come risposta, se ti va. – SHM