как получить десятичное значение из представления в контроллер - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть вход и только для чисел. Когда я пишу 5, я могу отправить в контроллер, но 5.5 возвращает ноль в контроллер. Я использую MVC, Bootstrap Javascript. Как я могу отправить десятичное число в контроллер?

  $(".loader").show();
                var thm = {};
                thm.thm_cns = $("#thm_cns").val();
                thm.thm_tr = $("#thm_tr").val();
                thm.thm_year = $("#thm_year").val();
                thm.thm_price = $("#thm_price").val();
                thm.thm_alan = $("#thm_alan").val();
              
                $.ajax({
                    type: "POST",
                    url: "/GGE/thm",
                    data: '{thm:' + JSON.stringify(thm) + '}',
                    contentType: "application/json;charset=utf-8",
                    dataType: "json",
                    success: function (json) {
                        alert(json);
                        $("input[type='text']").val('');
                        $("input[type='number']").val('');
                        $(".loader").hide();
                        $("#btn_thm").prop('disabled', false);
                    },


                });

в этом коде я пытаюсь получить thm_price как десятичное значение, но не могу.

 <div class="col-lg-3 col-sm-pull-3">
                                <input class="form-control" id="thm_price" name="thm_price" type="number" step="0.1"/>     
                            </div>

класс thm

 public class thm
{
    public int id { get; set; }
    public string thm_cns{ get; set; }
    public string thm_tr{ get; set; }
    public string thm_year{ get; set; }
    public decimal? thm_price{ get; set; }
    public float thm_alan{ get; set; }
}

и это коды контроллера, где я не получаю десятичное значение.

 [HttpPost]
    public JsonResult thm(thm thm)
    {
        int? d;
        int id = Convert.ToInt32(Session["id"]);
        using (cEntities thm_post= new cEntities())
        {
            d = thm_post.thm_add(id, thm.thm_cns, thm.thm_tr, thm.thm_year, thm.thm_price,tohum.thm_alan);

        }
        if (d > 0)
        {
            return Json("Thm is ok.", JsonRequestBehavior.AllowGet);
        }
        else {
            return Json("Thm is not ok ", JsonRequestBehavior.AllowGet);
        }
    }

1 Ответ

0 голосов
/ 01 ноября 2019

Вы пробовали использовать .toFixed()? Это заставляет значение, которое вы получаете от thm_price до десятичного числа. Например:

temp = $("#thm_price").val(); thm.thm_price=temp.tofixed(1);

Это даст thm_price десятичную с 1 десятичной точкой, например, 5.0 вместо 5 *.

Или вы можете попробовать использоватьparseFloat(), например:

thm.thm_price = parseFloat($("#thm_price").val()).toFixed(1);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...