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

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

کاربر سایت

محمد گنجی نژاد

عضویت از 1396/11/27

ارسال فرم با Ajax و دریافت مدل null در کنترلر

  • جمعه 14 شهریور 1399
  • 13:33
تشکر میکنم

در یک پروژه تک صفحه ای برای ذخیره مدل محصول با Aajx، پس از ارسال داده به کنترلر، متوجه شدم که مدل null دریافت می شود:
مقدار مدل ارسالی نال می باشد

مدل محصول: 

   

 public class Product
        {
            [Key]
            public int ProductId { get; set; }
            public string ProductName { get; set; }
            public string Model { get; set; }
            public uint price { get; set; }
            public string Descriprion { get; set; }
        }

ایجکس نوشته شده : 

    <script type="text/javascript">
        $(document).on('click', '#submitdate', function (evt) {
            evt.preventDefault();
            var data = new FormData();
    
            $('input').each(function (index,filds) {
                data.append($(filds).attr('name'), $(filds).val());
            });
            
            $.ajax({
                type: "POST",
                url: '@Url.Action("Index","Home")',
                data: data
            });
        });
    </script>

کنترلر در سی شارپ :

   

 [HttpPost]
    public IActionResult Index(Product model)
    {
        _context.products.Add(model);
        _context.SaveChanges();

        return Json(new { status = "success", message = "successfully save new product" });
    }


فرم در ویوی برنامه :

   

 <form method="post" enctype="multipart/form-data">
                    <div class="modal-body form-horizontal">
                        <div class="row">
                        
                            <div class="form-group">
                                <label asp-for="ProductName" class="col-lg-2 col-sm-2 control-label"></label>
                                <div class="col-lg-6">
                                    <input asp-for="ProductName" name="ProductName" class="form-control" />
                                </div>
                            </div>
    
                            <div class="form-group">
                                <label asp-for="Model" class="col-lg-2 col-sm-2 control-label"></label>
                                <div class="col-lg-6">
                                    <input asp-for="Model" name="Model" class="form-control" />
                                </div>
                            </div>
                            <div class="form-group">
                                <label asp-for="price" class="col-lg-2 col-sm-2 control-label"></label>
                                <div class="col-lg-6">
                                    <input asp-for="price" name="price" class="form-control" />
                                </div>
                            </div>
    
                            <div class="form-group">
                                <label asp-for="Descriprion" class="col-lg-2 col-sm-2 control-label"></label>
                                <div class="col-lg-6">
                                    <input asp-for="Descriprion" name="Descriprion" class="form-control" />
                                </div>
                            </div>
    
    
                        </div>
                    </div>
                    <input type="button" id="submitdate" class="btn btn-submit" value="save" />
    
                </form>


مشکل کجاست و راه حل آن چیه ؟

تشکر

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

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

رضا نصیری

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

  • شنبه 15 شهریور 1399
  • 09:21
[HttpPost]
   public IActionResult Index([FormBody]Product model)
   {
       _context.products.Add(model);
       _context.SaveChanges();
 
       return Json(new { status = "success", message = "successfully save new product" });
   }

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

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

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

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