Я пытался воспроизвести ваш исходный код.
Он хорошо работал со значением "2,5" или 2,5 в часах.
Если вы установите "2,5", связующее для модели MVC не может быть приведено к десятичному числу.Вам нужно изменить свой сценарий.
if (language === "en-US"){
hours = $("#Hours").val().trim().replace(",", ".");
}
else{
hours = $("#Hours").val().trim().replace(".", ",");
}
на
hours = $("#Hours").val().trim().replace(",", ".");
Обновление кода воспроизведения:
Вы можете создать другой контроллер для воспроизведения.Также вы должны создать объект и консольный журнал для просмотра реальных данных перед вызовом ajax:
var form = {
regDate: date, salesOrder: salesorder, shopDoc: shopdoc, startTime: convertedStartTime, endTime: convertedEndTime,
hours: hours, info: info, timeRegLineNr: timeRegLineNr
}
console.log(form);
открытый класс HomeController: Controller {
public ActionResult ShopDoc(DateTime regDate, string salesOrder, string shopDoc, string startTime, string endTime, decimal hours, string info, int timeRegLineNr)
{
return null;
}
}
Index.cshtml
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
$.ajax({
type: 'post',
url: '/Home/ShopDoc',
data: {
regDate: '2019-11-11',
salesOrder: "1",
shopDoc: "1",
startTime: '2019/11/11',
endTime: '2019/11/11',
hours: "2.5",
info: "1",
timeRegLineNr: 1
}, success: function (result) {
},
error: function (req, status, error) {
}
});
</script>