سلام
من يه مشكل دارم و اونم اينه كه توي يكي از فرمهاي برنامه كاربر يه checklistbox داره كه ايتم هاي مورد نظرش رو مارك ميكنه و به همراه يه سري داده ديگه ذخيره ميكنه در واقع هر كدوم از موارد مارك شده قراره يه ركورد جديد در ديتابيس بشن (ليستي از مدل). مقادير سمت كلاينت پر ميشه و ليست ساخته ميشه اما زماني كه به سمت كنترلر ارسالشون ميكنم مقدار null به من نشون ميده يا تعداد ركوردها رو شناسايي ميكنه ولي مقداري توشون نيست تقريبا از همه چيزايي كه ميشد استفاده كردم: سمت كنترلر از JObject از JArray از List<model> از خود مدل از object ، خلاصه از همه چي استفاده كردم كه مقدار ها رو توي خودش داشته باشه ولي بازم نشده
function Save() { debugger; var CarClassListVal = null; CarClassListVal = []; $('.checkboxBodySubClass:checked').each(function () { CarClassListVal.push($(this).attr('value')); }); if (CarClassListVal == null) { swal("خطا", "كاربر گرامي لطفا زير كلاس مورد نظر خود را انتخاب نمائيد", 'Error') } else { var ModelList = []; // <-- declare as array var Datamodel = { "Status":"", "PartTraceCodeExceptionID":"", "SubClassId": "", "StartDate": "", "EndDate": "", "StartTime": "", "EndTime": "" }; $.each(CarClassListVal, function (i, item) { Datamodel.Status = $("#Status").is(":checked"); Datamodel.PartTraceCodeExceptionID = $("#PartTraceCodeExceptionID").val(); Datamodel.SubClassId = CarClassListVal[i]; Datamodel.StartDate = $("#StartDate").val(); Datamodel.EndDate = $("#EndDate").val(); Datamodel.StartTime = $("#StartTime").val(); Datamodel.EndTime = $("#EndTime").val(); ModelList.push({ 'ModelList': Datamodel }); }); var model = JSON.stringify(ModelList); $.ajax({ //type: 'POST', //data: JSON.stringify(model), //contentType: 'application/json; charset=utf-8', //dataType: 'json', url: "/PartTraceExceptions/Create/", type: "Post", dataType: "JSON", //contentType: 'application/json; charset=utf-8', data: { "model": ModelList }, success: function (data) { debugger; if (data == true) { FillGridView(); CleanPage(); swal("پيغام", "عمليات با موفقيت انجام شد", 'success') } else { swal("خطا", data, 'Error') } } }); //$.post("/PartTraceExceptions/Create/", JSON.stringify(model), // function (data) { // debugger; // if (data == true) { // FillGridView(); // CleanPage(); // swal("پيغام", "عمليات با موفقيت انجام شد", 'success') // } else { // swal("خطا", data, 'Error') // } // }, 'json'); } };
كد سمت كنترلر هم به صورت زيره :
[HttpPost] public ActionResult Create(JObject ModelList) { }
ممنون ميشم راهنمايي كنيد
این لینک رو ببینید
لينك رو نگاه كردم، من تا زماني كه كنترلر صدا زده شه مشكلي ندارم و modellist پر ميشه ولي سمت كنترلر مقادير رو خالي نشون ميده . check listbox خودم رو به وسيله table ايجاد كردم و وقتي كه ذخيره ميكنه يه loop ميزنم روي اونايي كه مارك خورده و توي modellist نگه ش ميداره ولي همين كه ميره سمت كنترلر چيزي توي مدل نيست و null مقدارشه.
نباید حلقه بزنید
باید CheckBox ها بایک نام به سمت کنترلر ارسال بشوند
اینجوری میتونید لیستی از اون نوع یا مدل صفحه را داشته باشید
در نمونه ها اینکار انجام شده
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)