سلام خسته نباشید
من توی یک برنامه نیاز هست که آیتمی که توسط کاربر وارد شده توسط مدیر تایید بشه
خوب برای این کار با ایجکس مشکلی نیست (بدون پارشیال ویو)
حالا من برای این که تغییرات رو به صورت آنی ببینم اون رو در داخل پارشیال قرار دادم برای بار اول که پارشیال توسط خود ویو رندر میشه
تمام دستورات AJAX انجام میشه
ولی وقتی جواب AJAX برمیگرده و همون پارشیال با مقادیر جدید جای پارشال قدیمی رو میگیره دیگه دستورات AJAX اجرا نمیشن
سلام دوست عزیز
کد هاتون رو قرار بدید
خسته نباشید
کد قسمت کنترلر ویو اولیه
جایی که در ویو اولیه پارشیال ویو را خواندم
کد های ایجکس
قسمت هایی که در داخل پارشیال که تغییر میکند
قسمت کنترل که برای تایید باید این اکشن انجام بشه که فقط در دفعه اول اجرا میشود
کلاسی که در کنترلر استفاده شده
ممنون میشم کمکم کنید
این result.Html کجا پر میشه ؟؟
من یه کلاس نوشتم که بتونم به طور همزمان اسکریپت و HTML و موفقیت یا عدم موفقیت رو ارسال کنم ایک اون کلاس JsonData هست
حالا زمانی که برنامه جواب رو برمیگردونه
داره اون کلاس رو برمیگردونه
پس result.html قسمت HTML مقدار دهی شده در کلاس است
عکس زیر
این قسمت داخل همان پاشیا ویو هست و بعد از درخواست دوباره باید مقدار دهی بشه مگه الان غیر این شده
اشتباه کجاست
کد پارشیا ویو
@model EBtekarDl.ViewModels.Admin.ListViewModel <table class="table-full table-total" style="width:100%"> <tr> <th> @Html.DisplayName("نام ") </th> <th> @Html.DisplayName("گروه") </th> <th> @Html.DisplayName("ثبت کننده") </th> <th> @Html.DisplayName("تاریخ ارسال") </th> <th> @Html.DisplayName("حجم کل فایل") </th> <th> @Html.DisplayName("وضعیت") </th> </tr> @foreach (var item in Model.Program) { <tr style="direction:rtl;text-align:right" > <td> @Html.DisplayFor(modelItem => item.Name) </td> <td> @Html.DisplayFor(modelItem => item.Group.Name) </td> <td> @Html.DisplayFor(modelItem => item.User.Name) </td> <td> @item.PublishDate.ToStringShamsiDate(); </td> <td> @Html.DisplayFor(modelItem => item.Val1) </td> <td> @switch (item.IsPublish) { case 0: <p style="color:red;font-family:'Adobe Arabic'">تایید نشده</p> break; case 1: <p style="color:green;font-family:'Adobe Arabic'">تایید شده</p> break; case 2: <p style="color:orangered;font-family:'Adobe Arabic'">مسدود شده</p> break; } </td> </tr> <tr> <td> @switch (item.IsPublish) { case 0: <input type="button" value="تایید کردن" class="Confirmation btn btn-success" programid="@item.Id" /> break; case 1: <input type="button" value="مسدود کردن" class="Closed btn btn-danger" programid="@item.Id" /> break; case 2: <input type="button" value="تایید و انتشار دوباره" class="Reaffirming btn btn-warning" programid="@item.Id" /> break; } </td> <td> <img class="delet" programid="@item.Id" src="~/Content/Temp/Admin/recycle-bin (1).png" /> </td> </tr> } </table>
توی مرورگر دکمه F12 رو بزنید برید تب network چک کنید که ایا داده ارسال میشه و کرا نمیکنه یا اصلا درخواست ارسال نمیشه . و توی اکشن ها هم برکپوینت بزارید و تریس کنید
مرحله به مرحله چک کنید واقعا اینجوری بررسی کردن از روی تصاویر کمی سخته
حق باشماست سخته
من امتحان کردم با هردو مورد (F12 و بریکپوینت )داده ای ارسال نمیشه
هیچ واکنشی نمیده
تا زمانی که پارشیا ویو استفاده نمیکرم درست بود فقط تغییرات را نمیدیدم
حالا راهی نیست به جز این که این کار انجام بشه
نمیخوام صفحه رفرش بشه
من واقعا نمی دونم چکار کنم
کمکم کنید
من خودم برای این کار ها از angular js استفاده میکنم سرعتش عالیه و دست برنامه نویس هم باز تره
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)