سلام. من میخوام اگر مدل معتبر بود پیغام گرافیکی با پلاگین Sweet Alert نمایش داده بشه و با کلیک روی اوکی به صفحه دیگر برود.
من تا حدودی کد رو نوشتم ولی کامل درست عمل نمیکنه. مثلا شرط من در ویو if (ViewData.ModelState.IsValid)
درست عمل نمیکنه و من در اسکریپت Sweet Alert گفتم که کاربر به صفحه دیگر هدایت بشه آیا در اکشن متد باید
return RedirectToAction("allPerson") رو بردارم و اگر بردارم درست عمل نمیکنه.لطفا راهنمایی کنید.
کدهای بخش View :
///کدهای ویو
@if (ViewData.ModelState.IsValid)
{
<button class="btn btn-info w-25 mt-2 mb-4 " id="btn-submit-btn" type="submit">ثبت پرسنل</button>
}
else
{
<button class="btn btn-info w-25 mt-2 mb-4 " type="submit">ثبت پرسنل</button>
}
//// swal کدهای
<script>
$('#btn-submit-btn').click(function () {
swal({
title: "ارسال نامه",
text: "نامه شما با موفقیت ارسال شد",
type: 'success',
showCancelButton: false,
allowOutsideClick: false,
confirmButtonColor: "green",
confirmButtonText: "باشه"
}).then(function () {
window.location.href = "/Home/allPerson";
});
});
</script>
کدهای بخش کنترلر :
[HttpPost]
public IActionResult submitPersons(Person person ,String newPersonCartMlieImagePath, String newPersonShnasnameeImagePathName, String newPersonImagePathName, String newPersonBieemeDacumenPath)
{
if (ModelState.IsValid)
{
var proMapped = _mapper.Map<Person>(person);
proMapped.PersonImage = newPersonImagePathName;
proMapped.PersonShnasnamee = newPersonShnasnameeImagePathName;
proMapped.PersonCartMlie = newPersonCartMlieImagePath;
proMapped.PersonBieemeDacument = newPersonBieemeDacumenPath;
proMapped.PersonState = true;
_context.Add(proMapped);
_context.SaveChanges();
return RedirectToAction("allPerson");
}
ViewBag.pro = _context.Projects.ToList();
return View("submitPerson", person);
}
با سلام
شما یه Button گذاشتی که اصلاً هیچ ارتباطی بین اون و کنترلر نداره . و فقط قراره یه Message رو نشون بده .
احساس می کنم شما مشکل اصلیتون توی جی کوئری و استفاده از ایجکس هست. چون شما توی متن سوال گفتید میخواید اگر مدل شما معتبر بود یک پیغام نمایش داده بشه. خب نکته اول اینکه اگر شما میخواید مدلتون سمت سرور اعتبارسنجی بشه باید توسط دستورات Ajax مدل رو به کنترلر ارسال کنید و در اونجا توسط دستور زیر اعتبارسنجی رو انجام بدید. در کدهایی که قرار دادید هیچ نشانه ای از استفاده از ایجکس دیده نمیشه !!!
if (ModelState.IsValid) {
//...
}
ارسال اطلاعات به سمت کنترلر توسط دستورات ایجکس
اگر هم قصد دارید مدل خودتون رو سمت کلاینت اعتبارسنجی کنید (که البته زیاد پیشنهاد نمیشه) خب دیگه در این صورت اصلا نیازی به دستورات موجود در کنترلر که نوشتید نیست. چون شما مدلتون رو در سمت کلاینت اعتبار سنجی میکنید و اگر صحیح بود یک پیغام گرافیکی نمایش می دید و کاربر رو به سمت مسیر خاصی که نیاز داشتید هدایت می کنید.
<script>
$('#btn-submit-btn').click(function () {
if (("#txt1").val() == '' )
{
alert('مدل شما معتبر نیست');
return false;
}
swal({
title: "ارسال نامه",
text: "نامه شما با موفقیت ارسال شد",
type: 'success',
showCancelButton: false,
allowOutsideClick: false,
confirmButtonColor: "green",
confirmButtonText: "باشه"
}).then(function () {
window.location.href = "/Home/allPerson";
});
});
</script>
در مثال بالا فرض شده که txt1 یک input می باشد که در مدل داده ای شما موجود هست (چون شما هیچ اشاره ای به مدل داده ای خودتون نکردید). بنابراین کنترل کردیم که مقدارش خالی نباشه و اگر خالی بود یک پیغام نمایش دادیم.
نکته : ببینید اگر شما میخواید اطلاعات رو توسط ایجکس به سمت سرور ارسال کنید و در سمت سرور اعتبارسنجی کنید یا حتی اطلاعاتی در دیتابیس ثبت یا ویرایش کنید دقت کنید که return شما باید به صورت زیر باشد :
return json (new { status = "ok"});
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
53
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
92
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1347
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
116
- پاسخ :
0
|
تاریخ :
1403/07/09
- ساعت :
07:25:00 PM
- بازدید :
266
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
394
- پاسخ :
2
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
53
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
92
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1347
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1157
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
594
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|