مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

عدم ارسال مقادیر اعشاری در Decimal و Double در فرم ایجکس

  • یکشنبه 27 تیر 1395
  • 23:24
تشکر میکنم

با سلام

آقای مدائنی یه چیز جدید کشف کردم

من فرمم ایجکسی هست مقادیر decimal و double رو وقتی با ممیز می نویسم   در اکشن 0 میشه ببینید

یعنی وقتی مثلا 12 یا 78 و بدون ممیز می نویسم ارسال میشه اما وقتی 12.5 یا 45.67 می نویسم متاسفانه 0 میشه

علت چیه؟

خیلی گشتم به نتیجه نرسیدم

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 28 تیر 1395
  • 09:12

در مدل از چه نوعی گرفتید؟

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • دوشنبه 28 تیر 1395
  • 09:58

از نوع decimal  و double گرفتم

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 28 تیر 1395
  • 10:15

کد ویو و مدل را قرار دهید

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • دوشنبه 28 تیر 1395
  • 10:52

این مدلم

 public class BuildingUnitProperties
    {

        public List<unitproperties> listTellMobile { get; set; }

        public int id { get; set; }
        public byte BlockCount { get; set; }
        public int Block_id { get; set; }
        [Display(Name = "بدهی اولیه (ریال) :")]
        [DisplayName("بدهی اولیه (ریال) :")]
        [DisplayFormat(DataFormatString = "{0:#}", ApplyFormatInEditMode = true)]
        public Nullable<decimal> Debt { get; set; }
        [Display(Name = "طلب اولیه (ریال) :")]
        [DisplayName("طلب اولیه (ریال) :")]
        [DisplayFormat(DataFormatString = "{0:#}", ApplyFormatInEditMode = true)]
        public Nullable<decimal> Demand { get; set; }

        [Display(Name = "ردیف :")]
        [DisplayName("ردیف :")]
        public int Row { get; set; }
        [Display(Name = "عنوان واحد :")]
        [DisplayName("عنوان واحد :")]
        public string Title { get; set; }
        [Display(Name = "تعداد ساکنین :")]
        [DisplayName("تعداد ساکنین :")]
        public byte NumberResidents { get; set; }
        [Display(Name = "شماره واحد :")]
        [DisplayName("شماره واحد :")]
        public byte Number { get; set; }
        [Display(Name = "تعداد پارکینگ :")]
        [DisplayName("تعداد پارکینگ :")]
        public byte NumberParking { get; set; }
       
        [Display(Name = "طبقه :")]
        [DisplayName("طبقه :")]
        public byte Floor { get; set; }
        [Display(Name = "توضیح :")]
        [DisplayName("توضیح :")]
        public string Description { get; set; }

        [Display(Name = "شارژ ثابت (ریال) :")]
        [DisplayName("شارژ ثابت (ریال) :")]
        [DisplayFormat(DataFormatString = "{0:#}", ApplyFormatInEditMode = true)]
        public decimal Charje { get; set; }


        [Display(Name = "متراژ (متر مربع) :")]
        [DisplayName("متراژ (متر مربع) :")]
        public double Area { get; set; }

        [Display(Name = "متراژ انباری (متر) :")]
        [DisplayName("متراژ انباری (متر) :")]
        public decimal Warehouse { get; set; }

       


    }

شما همون Area  و Warehouse و Charje رو ببینید این سه تای آخری مهم هست

این هم ویو

@model CMScharge.Classes.Building.BuildingUnitProperties
@{
    ViewBag.Title = "ویرایش واحد ها";
    Layout = "~/Views/Shared/_BuildingLayout.cshtml";
}
@using (Ajax.BeginForm("UpdateUnit", "Building", new { item = Model }, new AjaxOptions { UpdateTargetId = "tabstrip-1", HttpMethod = "POST", OnSuccess = "success" }))
{


    @Html.ValidationSummary(true)
    @Html.AntiForgeryToken()
    @Html.HiddenFor(model => model.id)
    if (TempData.Count > 0 && TempData["Message"] != null)
    {
        <div class="Message-color">@TempData["Message"]</div>
    }
    if (TempData.Count > 0 && TempData["Error"] != null)
    {
        <div class="Error-color">@TempData["Error"]</div>
    }
    <div class="form-horizontal">
        <div id="tt">
        </div>
        <div>
            <p>واحد</p>
            @*<p>@Model.Number</p>*@

        </div>
        <div id="tabstrip">
            <ul>
                <li class="k-state-active">مشخصات واحد</li>
                <li>تنظیمات افتتاحیه</li>
            </ul>
            <div id="_UnitProperties">

                <div class="form-group">
                    @Html.LabelFor(model => model.Area, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Area)
                        @Html.ValidationMessageFor(model => model.Area)
                    </div>
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.NumberResidents, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.NumberResidents)
                        @Html.ValidationMessageFor(model => model.NumberResidents)
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.NumberParking, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.NumberParking)
                        @Html.ValidationMessageFor(model => model.NumberParking)
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.Charje, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Charje)
                        @Html.ValidationMessageFor(model => model.Charje)
                    </div>
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.Floor, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Floor)
                        @Html.ValidationMessageFor(model => model.Floor)
                    </div>
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.Title, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Title)
                        @Html.ValidationMessageFor(model => model.Title)
                    </div>
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.Warehouse, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Warehouse)
                        @Html.ValidationMessageFor(model => model.Warehouse)
                    </div>
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.Number, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Number)
                        @Html.ValidationMessageFor(model => model.Number)
                    </div>
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.Description, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.TextAreaFor(model => model.Description)
                        @Html.ValidationMessageFor(model => model.Description)
                    </div>
                </div>
                <div class="form-group">

                    <div class="col-md-9">
                        @Html.ActionLink("انصراف", "BuildingUnitProperties", null, new { @class = "btn btn-default" })
                    </div>
                    <div class="col-md-1">
                        <input type="submit" class="btn btn-default" value="ثبت" name="submitButton" />
                    </div>
                    <div class="col-md-2">
                    </div>
                </div>
                <div class="form-group">
                    <p>اطلاعات تماس با افراد مرتبط با این واحد را (مالک ها و مستأجرها) را در این بخش وارد نمایید</p>
                </div>
                <div class="form-group">

                    <input type="submit" class="btn btn-default cancel" value="معرفی افراد مرتبط با واحد" name="submitButton" />
                    <br />
                    @(Html.Kendo().Grid<CMScharge.Classes.Building.unitproperties>(Model.listTellMobile)
          .Name("gridd")
          .Columns(columns =>
          {
              columns.Bound(p => p.UnitProperties_id).Visible(false);
              columns.Bound(p => p.EnterDate).Title("تاریخ ورود");
              columns.Bound(p => p.UnitProperties_Name).Title("نام مالک/مستأجر");
              columns.Bound(p => p.UnitProperties_Mobile).Title("تلفن همراه");
              columns.Bound(p => p.UnitProperties_Tell).Title("تلفن");
              columns.Bound(p => p.UnitProperties_Email).Title("ایمیل");
              columns.Bound(p => p.UnitProperties_Owner).ClientTemplate("<input name='UnitProperties_Owner'   type='checkbox' data-bind='checked: UnitProperties_Owner' #= UnitProperties_Owner ? checked='checked' : '' #  disabled />").Title("مالک");
              columns.Bound(p => p.UnitProperties_Active).ClientTemplate("<input name='UnitProperties_Active'  type='checkbox' data-bind='checked: UnitProperties_Active' #= UnitProperties_Active ? checked='checked' : '' #  disabled/>").Title("فعال");
              columns.Template(x => { }).ClientTemplate("<input type='button' value='ویرایش' onclick='EditMobileTell(#=UnitProperties_id#)'  class='k-button k-grid-even' />");
              columns.Command(command => { command.Destroy().HtmlAttributes(new { @class = "k-button k-button-icontext" }).Text("حذف"); });
          })
           .Pageable(pageable => pageable

               .Messages(message => message.ItemsPerPage("تعداد آیتم در هر صفحه"))
               .Messages(message => message.Display("نمایش افراد {0} تا {1}. تعداد کل افراد مرتبط با این واحد :{2}"))
              .Refresh(true)
              .PageSizes(true)
              .ButtonCount(2)

  )
.Editable(editable =>
{
    editable.DisplayDeleteConfirmation("از حذف مطمئن هستید؟");
})
    .Sortable()

.DataSource(c => c
.Ajax()
.ServerOperation(false)
.PageSize(3)

.Events(events => events.Error("error_handler"))
.Model(model =>
{
    model.Id(p => p.UnitProperties_id);
    model.Field(p => p.UnitProperties_id).Editable(false);
})
.Destroy(update => update.Action("DeleteMobileTell", "Building"))
)
                    )
                </div>

            </div>
            <div id="_Settings">
                <div class="form-group">
                    <p>
                        در این قسمت اطلاعات بدهی و طلب ابتدایی واحد را هنگام راه اندازی و شروع فعالیت در سامانه تنظیم نمایید
                        <br />
                        چنانچه ساختمان شما با صفر کردن حساب واحدها در این سامانه شروع به فعالیت کرده نیازی به تنظیم این مقادیر نیست
                    </p>
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.Debt, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Debt)
                        @Html.ValidationMessageFor(model => model.Debt)
                    </div>
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.Demand, new { @class = "control-label col-md-1" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.Demand)
                        @Html.ValidationMessageFor(model => model.Demand)
                    </div>
                </div>
                <div class="form-group">

                    <div class="col-md-10">
                        <input type="submit" class="btn btn-default" value="تنظیم حساب" name="submitButton" />
                    </div>
                </div>
            </div>

        </div>



    </div>
}

@section Scripts {

    <script src="~/Scripts/kendoFa/JalaliDate.js"></script>
    <script src="~/Scripts/kendoFa/kendo.web.js"></script>
    <script src="~/Scripts/kendoFa/fa-IR.js"></script>

    <script type="text/javascript">

        function EditMobileTell(e) {
            $.ajax({
                type: "POST",
                url: '@Url.Action("UpdateMobileTell", "Building")',
                data: JSON.stringify({ UnitProperties_id: e }),
                contentType: "application/json; charset=utf-8",
                dataType: "html",
                success: function (result) {

                    $("#tabstrip-1").html(result);
                    //کار کردن اعتبار سنجی در پارشیال ویو های زیر مجموعه این ویو
                    $('form').removeData('validator');
                    $('form').removeData('unobtrusiveValidation');
                    $.validator.unobtrusive.parse('form');

                    //مربوط به ثبت اطلاعات افراد مرتبط با وحد
                    $("#UnitProperties_EnterDate").kendoDatePicker();
                },
                error: function (result) {
                    alert("برنامه با خطا مواجه شد");
                }
            });


        }

        var tabStripElement = $("#tabstrip").kendoTabStrip({
            animation: {
                open: {
                    effects: "fade"
                }
            }
        });
        function OnRequestEnd_TopLinePriceGrid(e) {
            if (e.type === "update") {
                var grid = $('#gridd').data('kendoGrid');
                grid.dataSource.read();
            }
        }

        function error_handler(e) {
            if (e.errors) {
                var message = "Errors:\n";
                $.each(e.errors, function (key, value) {
                    if ('errors' in value) {
                        $.each(value.errors, function () {
                            message += this + "\n";
                        });
                    }
                });
                alert(message);
            }
        }

        function success() {


            //مربوط به ثبت مشخصات واحد
            $("#Description").val('');
            $("#Area").val('');
            $("#NumberParking").val('');
            $("#NumberResidents").val('');
            $("#Charje").val('');
            $("#Floor").val('');
            $("#Title").val('');
            $("#Warehouse").val('');
            $("#Number").val('');
            //کار کردن اعتبار سنجی در پارشیال ویو های زیر مجموعه این ویو
            $('form').removeData('validator');
            $('form').removeData('unobtrusiveValidation');
            $.validator.unobtrusive.parse('form');


            //مربوط به ثبت اطلاعات افراد مرتبط با وحد
            $("#UnitProperties_EnterDate").kendoDatePicker();
            $("#UnitProperties_Name").val('');
            $("#UnitProperties_Mobile").val('');
            $("#UnitProperties_Tell").val('');
            $("#UnitProperties_Email").val('');
            var Textt = $("#UnitProperties_EnterDate").data("kendoDatePicker");
            Textt.value("");
            $('input:checkbox[name=UnitProperties_Owner]').attr('checked', false);
            $('input:checkbox[name=UnitProperties_Active]').attr('checked', false);

            $('#talab').val('');
        };


    </script>
}

ببینید واقعا نمیدونم چیه  که وقتی اعشاری میزنم 0 بهم نشون میده توو اینترنت کلی گشتم کلاس DecimalModelBinder بود اما هر چقدر این کلاسم گذاشتم نشد

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)