• بررسی چگونگی پیاده سازی یک CRUD مبتنی بر JQuery در ASP.NET MVC 5 – بخش دوم
بررسی چگونگی پیاده سازی یک CRUD مبتنی بر JQuery در ASP.NET MVC 5 – بخش دوم
1395/03/14 - 18:17:25 // MVC 5 & 6 // 0 نظر // 3179 بازدید

در قسمت قبلی Model و Connection String ایجاد و حالا وقت ایجاد UserController و نوشتن Action Method های لازمه میباشد . ابتدا در فولدر Controller یک کنترولر جدید به نام UserController ایجاد کنید . در همان ابتدا Dal را درون NameSpace ها لحاظ میکنیم و درون سطح کلاس هم یک Instant جدید از DbContext میگیریم.

بسمه تعالی

بررسی چگونگی پیاده سازی یک CRUD مبتنی بر JQuery در ASP.NET MVC 5 بخش دوم

در قسمت قبلی Model و Connection String ایجاد و حالا وقت ایجاد UserController و نوشتن Action Method های لازمه میباشد . ابتدا در فولدر Controller یک کنترولر جدید به نام UserController ایجاد کنید . در همان ابتدا Dal را درون NameSpace ها لحاظ میکنیم و درون سطح کلاس هم یک Instant جدید از DbContext میگیریم.

خوب اگر مطابق تصویر بالا را تا به اینجا ایجاد کرده اید ، حال وقت نوشتن بدنه Index و در اصل داشتن لیست User ها میباشد .

همین بدنه ساده سبب داشتن یک لیست از داده ها خواهد شد . در قدم بعدی ، باید بتوان بر اساس UserID یک کاربر را انتخاب و ریز اطلاعات آنرا در اختیار داشت . اسم این متد را Details میگذاریم و بدنه آنرا مطابق زیر خواهیم نوشت.

این متد دارای یک پارامتر ID است که در حالت پیش فرض مقدار آن 0 است. دستور Find سبب یافتن کاربر بر اساس ID خواهد شد و در صورت NULL نبودن به سطح View پاس داده خواهد شد . NULL بودن حاصل جستجو سبب نمایش پیام NOTFound در سطح Application خواهد شد.

برای ایجاد Create Action Method باید بدانیم که به یک متد Get و یک post نیاز داریم . متد Get که عملن خالی خواهد بود و صدا زدن آن فقط سبب صدا زدن شدن Create Partial View به صورت خالی خواهد شد . بعدا خواهید دید که با زده شدن لینک Create یک Modal نمایش داده شده و با زده شدن دکمه Save عملیات ثبت انجام خواهد شد . به شکل زیر توجه کنید.

متد Create در وضعیت Post به شکل زیر خواهد بود.

ورودی متد یک Instant از کلاس User است که بر اساس Model Binding حاوی دیتای ارسالی از View خواهد بود. وضعیت ModelState چک شده و اگر همه مقادیر صحیح باشد مقدار User به مجموعه User ها افزوده و سپس توسط SaveChanges به دیتابیس ارسال خواهد شد . مقدار Msg در Tempdata هم بعدا در یک Modal در View نمایش داده خواهد شد . خوب پس از همه این مراحل ، مجددا Index Action اجرا خواهد شد و در اصل لیست ما Refresh خواهد گردید. در صورت عدم Valid بودن ModelState هم که از طریق Return همان مقدار باز خواهد گشت و در اصل صفحه ما تغییری نخواهد کرد و همین مقادیر درون User به View ارسال میشود . همانطور که مشاهده میکنید برای مشخص شدن Get یا Post بودن متدها میتوان برای Get چیزی عنوان نکرد و برای Post در بالای متد از HttpPost Attribute استفاده نمود . یک Attribute دیگر به نام AntiForgeryToken هم موجود است که برای جلوگیری از یکسری از حملات خاص در View ها به کار خواهد رفت .

برای حذف رکوردها یک متد فعلا کافی است . این متد از طریق ID رکورد را یافته و سپس آنرا حذف خواهد نمود. به شکل زیر دقت کنید .

برای حذف به سادگی رکورد از Collection باید Remove شود و باز SaveChanges اجرا شود . یک پیام موفقیت درون TempData میگذاریم و باز Index Action را صدا میزنیم تا لیست ما Refresh شود.

نکته : حذف هم میتواند دارای دو متد Get و Post باشد و در آن حالت امنیت بیشتری هم بر پروژه حاکم است . استفاده از یک متد Get به تنهایی در پروژه های واقعی و مهم پیشنهاد نمی گردد.

وضعیت Edit هم مشابه Create است با این تفاوت که متد Get باید رکورد را یافته و مقادیر آنرا به View منتقل کند و بعد متد Post سبب Update شدن رکورد گردد. به شکل متد Get برای Edit دقت کنید .

اگر رکورد پیدا شود ، عملن مقادیر آن به View که در پروژه ما درون یک Modal باید load شود نمایش داده خواهد شد . حال اگر کاربر تغییری ایجاد کند و دکمه Save را بزند باید متد Post که به شکل زیر است اجرا شود .

کل Controller یک متد Dispose به شکل زیر هم باید داشته باشد .

خوب با اجرای Dispose که به صورت اتوماتیک و توسط Garbage Collector درون Compiler انجام خواهد شد ، متغیر گرفته شده از DbContext درون حافظه Kill شده و حافظه اختصاصی کلن آزاد خواهد شد .

در این مقاله کل مراحل لازمه برای Controller به پایان رسید و حالا وقت ایجاد بستر Viewها میباشد . در اصل برای اینکه بتوان View ها بر اساسی Jquery در اختیار داشت ، باید JS ها و CSS های لازمه در پروژه ایجاد و عملیات Bundling هم به درستی انجام گردد. ایجاد Layout هم جز مراحل پیش نیاز View ها است که همگی اینها در بخش بعدی انجام خواهد شد.

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

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

امتیاز به مطلب
           
نظرات کاربران
ارسال نظر