دسته بندی ها
12:41 1398/07/12

ایجاد validation سمت کلاینت و سمت سرور در مودال

مشخصات سوال کننده :
کاربر : safir     امتیاز کاربر : 10     رتبه کاربر : 70
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3007
پاسخ دهنده : hamdola 23:24 1398/07/26

سلام بهتر بود کدهایی که نوشتید رو قرار می دادید. چون در اینجا فقط یک خط کد هست که ظاهرا هم درسته.

 

به این پاسخ امتیاز بدهید    0
امتیاز: 121 رتبه: 12
پاسخ دهنده : mohammad-i 23:24 1398/07/26

دقیقا نمیدونم بهم ریختن فرمتون چجوریه

ولی حدس میزنم با تغییر محل نمایش ارور مشکلوتون حل بشه.

مثلا ارور رو بالا یا پایین Input بزارید. نه رو به روش.

به این پاسخ امتیاز بدهید    0
امتیاز: 260 رتبه: 7
پاسخ دهنده : safir 23:24 1398/07/26

دوست عزیز، تغییرات شما رو اعمال کردم اما نشد

این تصویر فرم لاگین که به صورت مودال باز میشه:

 

اگر بدون وارد کردن نام کاربری و کلمه عبور بر روی ورود کلیک کنیم، به تصویر زیر هدایت می شویم:

به این پاسخ امتیاز بدهید    0
امتیاز: 10 رتبه: 70
پاسخ دهنده : saedbfd 23:24 1398/07/26

توی اکشن Login در کنترلر شما گفتید اگر ModelState صحیح بود که لاگین رو انجام بده

اما اگر صحیح نبود گفتید return کن view رو. خب در اینجا قاعدتا یک ویو باید نمایش داده بشه نه یک پارشیال ویو

به این پاسخ امتیاز بدهید    1
امتیاز: 1654 رتبه: 1
پاسخ دهنده : naserzade 23:24 1398/07/26

سلام. در زمانی که خطا رخ میده شما باید پارشیال ویو رو برگردونید نه ویو رو. در ضمن فرم مودال خودتون رو هم باید ایجکس ثبت کنید. میتونید از خود فرم استفاده کنید به این صورت

<form asp-controller="Account" asp-action="Login" id="frmLogin" data-ajax="true" data-ajax-method="POST" data-ajax-update="#ModalBody">
    <!-- Modal -->
    <div class="modal fade" id="Modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">لاگین</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body" id="ModalBody">

                </div>
                <div class="modal-footer">
                    <button type="submit" class="btnK btn-success">ورود</button>
                    <button type="button" class="btnK btn-secondary btnCloseModal" data-dismiss="modal">بستن</button>
                </div>
            </div>
        </div>
    </div>

</form>

 

همچنین از کتابخانه های زیر هم برای ولیدیشن باید استفاده کرد jquery.validate.min.js - jquery.unobtrusive-ajax.min.js - jquery.validate.unobtrusive.js

به این پاسخ امتیاز بدهید    2
امتیاز: 20 رتبه: 36
پاسخ دهنده : safir 23:24 1398/07/26

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

در قسمت modal-content یک id تعریف کرده:

<div class="modal-content" id="modalcontent">

و در قسمت فرم آن را update می کنیم

 

data-ajax-update="#modalcontent"

اگر modal-content آپدیت شود 2 فرم مودال بر روی هم می افتد. 

به این پاسخ امتیاز بدهید    1
امتیاز: 10 رتبه: 70
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود