• ASP.NET Core 1 – بررسی Client Side Validation
ASP.NET Core 1 – بررسی Client Side Validation
1395/02/13 - 11:08:50 // MVC 5 & 6 // 1 نظر // 3589 بازدید

یکبار پروژه را باز و یک رکورد را در وضعیت Edit قرار داده و با استفاده از Inspect به محتوای صفحه بروید . خواهید دید که مشابه تصویر زیر یک Data-val که مقدار آن هم True است در صفحه وجود دارد .


بسمه تعالی

ASP.NET Core 1 بررسی Client Side Validation

یکبار پروژه را باز و یک رکورد را در وضعیت Edit قرار داده و با استفاده از Inspect به محتوای صفحه بروید . خواهید دید که مشابه تصویر زیر یک Data-val که مقدار آن هم True است در صفحه وجود دارد .

این Property توسط Tag Helper ها به صورت اتوماتیک تولید شده است و سبب آن وجود Data Annotation است که در Model یا ViewModel ها ایجاد گردیده است . ما الان در اینجا Max Length و پیام لازمه برای آن برای مشاهده پیام خطا توسط کاربر و ... را مشاهده میکنیم. خوب دقت کنید که Browser هیچ اطلاعی از این تنظیمات ندارد و در حال حاضر وضعیت ما بهینه نیست . اگر سیستم شما 1 میلیون کاربر داشته باشد و در لحظه همه از سیستم استفاده کنند ، میدانید چه باری روی سرور خواهید گذاشت و آن هم فقط به این خاطر است که اگر هر کس مقداری را بر خلاف استاندارد Validation ها هم وارد کند ، باز درخواستش به سرور ارسال شده و سبب درگیر شدن سرور خواهد شد .

در این بخش قصد داریم با استفاده از Jquery و Library های درون آن ، Validation را به Client منتقل کنیم.یعنی اگر مقداری توسط کاربر به غلط وارد شد ، بدون ارسال به سرور پیام خطا به کاربر نمایش داده شده و اجازه ارسال Request اصلن داده نشود.

برای رسیدن به هدف بالا ، باید اول Library های لازمه را به پروژه اضافه کنیم.

اول باید به سراغ Package.Json رفته و مراحل را مطابق زیر ادامه دهیم .

خوب نتیجه به صورت زیر خواهد شد .

خوب حالا همه Library های لازمه به پروژه افزوده شده است . حالا باید این Script ها به کل پروژه یعنی در Layout یا حد اقل در صفحه ای که لازم داریم از آنها استفاده کنیم ، معرفی شوند.

سه فایل مورد نیاز را که ترتیب آنها هم مهم است و Jquery باید اولی باشد ، به شکل زیر به پروژه اضافه میکنیم

این تصویر قسمت پایانی Layout است که فایلها به آن معرفی شده است.

به فرم Edit باز میگردیم ، یکبار Refresh می کنیم و با بررسی Console می بینیم که پیام خطایی نداریم و این یعنی Script ها به درستی Add شده اند . حالا ورودی را حذف کنید و Submit کنید . خواهید دید که دیگر صفحه Refresh نمی شود و پیام خطا در سمت Client صادر شده است.باز هم اگر شک دارید ، 1 کاراکتر وارد کنید و خواهید دید که پیام خطا حذف میشود و بعد باز کاراکتر را حذف کنید و باز پیام خطا بر میگردد . این نشان از Client Side بودن همه چیز دارد.این نوع Validation برای همه انواع Data Annotation مصداق دارد و با آن هماهنگ است .

حالا کم کم مانند بخش توضیح داده شده ، در حال بهینه سازی پروژه و در کنارآن ایجاد توانمندیهای بیشتر می باشیم. اگر مقاله های Repository Pattern را هم دنبال کنید ، کم کم میتوانید به جای استفاده از EF در Controller ها از Repository استفاده کنید و پس از آن وقتی SOLID را توضیح دادیم ، خواهید دید که چگونه یک پروژه بزرگ در یک تیم حتی بالای 500 برنامه نویس به طور همزمان میتواند تقسیم شود .

دانلود سورس پروژه

علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
نظرات کاربران
  • ناشناس
    1395/02/13 - 20:40:38

    0
    0
    سلام در رابطه با بحث قثحخسهفخقغ من چندین جا خوندم که استفاده ازش درست نیست: http://www.dotnettips.info/post/1773/repository-%D9%87%D8%A7-%D8%B1%D9%88%DB%8C-unitofwork-%D8%A7%DB%8C%D8%AF%D9%87-%D8%AE%D9%88%D8%A8%DB%8C-%D9%86%DB%8C%D8%B3%D8%AA%D9%86%D8%AF https://code.msdn.microsoft.com/Service-Layer-Entity-7a1fac6c در این مورد نظرتون چی هست؟
     
    پاسخ : مشخص نیست چی نوشته اید ، ولی در مورد هر چیزی که نوشته اید ، اگر بخواهید می توانید 40 مقاله در مورد اینکه خیلی خوب است و باید استفاده شود پیدا میکنید و 50 تا ضد همین نظریه را . این را ببینید . 
    http://aspnetboilerplate.com/Pages/Documents 
    یک شرکت آمریکایی یک نمونه سورس از من خواست یکبار و بعد به خاطر عدم رعایت مثلن روال صدا زدن Repository در Controller ها و نداشتن 4 تا کلاس اضافی ، یعنی رعایت این Template که در لینک داده ام ، مرا یک ابله خواند . 10 روز بعدش یک شرکت دیگر به خاطر اینکه خودم رو الاف یکسری لایه های اضافی و ... نکرده بودم ، یک کار را کلن داد به من . اینها همیشه جنجالی و پر سر و صدا بوده و همیشه هم سرش دعوا است . 
ارسال نظر