На мой взгляд, у меня есть два ввода для чисел (целое или десятичное). Если я отправляю целые числа, приложение работает хорошо, но если я отправляю десятичные дроби, IDK, почему приложение получает 0
Пример: у меня есть цена , я записываю значение 12.55 , когда я делаю запрос на сохранение числа, в моем контроллере это значение выглядит как 0, поэтому БД сохрани его с 0
Я хотел бы знать, что происходит
Это мой взгляд:
<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Add concept</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<form>
<div style="visibility:hidden">
<input type="text" id="mIdcon" disabled="disabled" />
<input type="text" id="mIdreq" disabled="disabled" />
</div>
<div class="row form-group">
<div class="col-md-5">
<label for="mCanti">Quantity</label>
<input type="text" class="form-control"
id="mCanti" placeholder="Quantity"
onkeypress="return filterFloat(event, this);" />
</div>
<div class="col-md-1">
</div>
<div class="col-md-6">
<label for="Fent">Delivery Date:</label>
<input type="text" class="datefield form-control"
id="Fent" placeholder="DD/MM/AAAA" />
</div>
</div>
<div class="row form-group">
<div class="col-md-5">
<label for="UDM">UDM / UOM</label>
<input type="text" class="form-control" id="mUDM" maxlength="2"
placeholder="UDM / UOM" />
</div>
<div class="col-md-1">
</div>
<div class="col-md-6">
<label for="cCta">Acount</label>
@Html.DropDownList("ctaMAX", null, new {
@id = "cCta",
@class = "btn btn-primary dropdown-toggle",
@style = "color:#777777;background-color:#f8f8f8;border-color:#e7e7e7" })
</div>
</div>
<div class="row form-group">
<div class="col-md-6">
<label for="Descripcion">Description</label>
<input type="text" class="form-control" id="mDes"
placeholder="Description" />
</div>
<div class="col-md-6">
<label for="par">Partialities</label>
@Html.DropDownList("parci", null, new {
@id = "par",
@class = "btn btn-primary dropdown-toggle",
@style = "color:#777777;background-color:#f8f8f8;border-color:#e7e7e7" })
</div>
</div>
<div class="row form-group">
<div class="col-md-5">
<label for="NoParte">Part Number</label>
<input type="text" class="form-control" id="mNopa"
placeholder="Part Number" />
</div>
<div class="col-md-7">
</div>
</div>
<div class="row form-group">
<div class="col-md-5">
<label for="Precio">Unit Price</label>
<input type="text" class="form-control" id="mPrecio"
placeholder="Unit Price"
onkeypress="return filterFloat(event, this);" />
</div>
<div class="col-md-7">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="btnAdd"
onclick="return AddConcept();">Add</button>
<button type="button" class="btn btn-default" data-dismiss="modal">
Close
</button>
</div>
</div>
</div>
</div>
Это мой JS:
function AddConcept() {
var res = Validate(); // This function just validate that the inputs aren't empty
if (res == false) {
return false;
}
var ConceptoObj = {
idconcepto: $('#mIdcon').val(),
idreq: $('#idreq').val(),
cantidad: $('#mCanti').val(),
UDM: $('#mUDM').val(),
descripcion: $('#mDes').val(),
NoParte: $('#mNopa').val(),
precio: $('#mPrecio').val(),
FechaEntrega: $('#Fent').val(),
PagoParcial: $('#par option:selected').val()
};
var c = $('#cCta').val();
var f = $('#fes').val();
var m = $('#mon').val();
$.ajax({
url: '/Order/AddConcept?cta=' + c + '&fs=' + f + '&cm=' + m,
data: JSON.stringify(ConceptoObj),
type: "POST",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (result) {
CargarConceptosOC();
AjusteRate();
if (result == "-100")
alert("-You have exceeded the limit of concepts for this Requisition-");
if (result == "-200")
alert("-There is a problem. Contact the admin-");
$('#myModal').modal('hide');
},
error: function (errormessage) {
alert(errormessage.responseText);
}
});
}
Это мой контроллер:
public JsonResult AddConcept(ConceptosOC conOC, string cta, string fs, string cm)
{
int resp = 0, idcon = 0;
resp = objDB.CUDConceptosOC(conOC, 1);
DateTime fesol = conOC.FechaEntrega == null
? DateTime.Today : (DateTime)conOC.FechaEntrega;
DateTime fcenti;
decimal rate = Convert.ToDecimal(
objDB.SelectCadena("Here I get the dolar price"));
int renglon = Convert.ToInt32(
objDB.SelectCadena("Here I get the row that I want to modify"));
if (resp == -1)
{
idcon = Convert.ToInt32(objDB.SelectCadena("Here I get a specific ID"));
switch (conOC.PagoParcial)
{
case 2:
// Ignore this
break;
default:
resp = objDB.Ejecutar(
"INSERT INTO ACOUNTS(ID_CONCEPT, ID_REQUEST, AMOUNT, ACOUNT, REGISTER_DATE, ROW_AFFECTED)" +
"values(" + idcon + "," + conOC.idreq + "," +
((conOC.cantidad * conOC.precio) * rate).ToString("G", CultureInfo.InvariantCulture) +
",'" + cta + "','" + fesol.ToString("yyyy-MM-dd") +
"'," + (renglon + 1) + ")");
break;
}
}
return Json(resp, JsonRequestBehavior.AllowGet);
}
Это мой объект:
public class ConceptosOC
{
public int idconcepto { get; set; }
public int idreq { get; set; }
public decimal cantidad { get; set; }
public string UDM { get; set; }
public string descripcion { get; set; }
public string NoParte { get; set; }
public decimal precio { get; set; }
public DateTime? FechaEntrega { get; set; }
public int PagoParcial { get; set; }
}
Это мои функции фильтра:
function filterFloat(evt, input) {
var key = window.Event ? evt.which : evt.keyCode;
var chark = String.fromCharCode(key);
var tempValue = input.value + chark;
if (key >= 48 && key <= 57) {
if (filter(tempValue) === false) {
return false;
} else {
return true;
}
} else {
if (key == 8 || key == 13 || key == 0) {
return true;
} else if (key == 46) {
if (filter(tempValue) === false) {
return false;
} else {
return true;
}
} else {
return false;
}
}}
function filter(__val__) {
var preg = /^([0-9]+\.?[0-9]{0,4})$/;
if (preg.test(__val__) === true) {
return true;
} else {
return false;
}}