بروزرسانی تابع Model در MVC

ما در این مقاله ، تابع UpdateModel را در MVC خواهیم دید . ما مثالی را ارائه خواهیم داد و بر مبنای آن استفاده و چگونگی کارکرد تابع UpdateModel را برای شما شرح خواهیم داد .

بروزرسانی تابع Model  در MVC



معرفی :
در این قسمت یک مروره کُلی بر مثالی که بررسی خواهیم کرد ، داریم .



در اینجا اگر ما روی دکمه ثبت کلیک کنیم ، اطلاعات وارد شده به سرور پست خواهد شد و پارامترهایی -که در تصویر زیر مشاهده میکنید - داده های خود را دریافت میکنند :
 

به جای قرار دادن یک شی از Employee به عنوان پارامتر ورودی متد Create ما یکسری پارامترهایی را قرار داده ایم . که دلبخواه است شما میتوانید یک شی از Employee را به آن پاس دهید . 

حال ، این شی از Employee میرود که داده های ارسالی را دریافت کند ، ما یک شی از Employee را ارسال کرده ایم . به کد های زیر توجه کنید :



فقط یک چیزی که باقی می ماند این است که ، ما در اینجا ممکن است تعدادی خطای valid modelation داشته باشیم  که در اینجا استفاده از مشخصه IsValid شی model state را میطلبد . به کد زیر توجه فرمایید : 


این مشخصه یک مشخصه ی boolean میباشد . که این بدان معناست که ، این یک مقدار true یا False را بازمیگرداند . اگر در اینجا هیچگونه خطایی وجود نداشت ، این مقدار true را بازمیگرداند و اگر در اینجا خطای model validation وجود داشت ، مقدار False را باز میگرداند . 

اگر مقدار False را بازگرداند ، ما باید یک فرصت و مجال برای کاربر فراهم آوریم که این خطا را تصحیح کند ، برای این کار آن را به View باز میگردانیم . به کد زیر توجه کنید :

حال ، اجازه دهید تا برنامه را اجرا کنیم ؛ ما در جدول خود 6 ردیف اطلاعات داریم که یکسری داده درون خود نگه میدارند . 



همانطور که در تصویر زیر مشاهده میکنید ، داده های پایگاه داده به درستی ثبت شده اند :



حال ، ما همچین چیزی را بدون اینکه پارامتری را به متد Controller خود ارسال کنیم ، میتوانیم بدست آوریم . یک Function ایجاد کنید و در ادامه ی آن یک شی جدید از Employee را نیز ایجاد کنید . 


ما شی جدید از Employee را ایجاد کردیم و آن را به تابع updateModel پاس دادیم . زمانی که تابع اجرا شود ، تمام مقادیر کارمندی که ایجاد میکند null خواهد بود و آن بدین دلیل است که مقداری به فیلد های آن Employee که ایجاد کردیم ندادیم . 

حال اگر توجه داشته باشید ، دراینجا دو متد Create وجود دارد که هر دوی آنها نام یکسان دارند و هیچکدام از آنها هم پارامتری را دریافت نمیکنند . پس امکان Overloading وجود ندارد .

زمانی که پروژه خود را build کنید ، با خطای زیر مواجه خواهید شد :

EmployeesController دارای دو متد هم نام است که هر دوی آنها پارامتری را دریافت نمیکنند ، یکی از راه های رفع این خطا تغییر نام آن است . 


ما نام Action Method خود را تغییر دادیم ، باید یک ActionName برای آن مشخص کنیم تا Controller ما بداند برای پاسخ دادن ، درخواست را به کدام Action ارسال کند . 

زمانی که ما قصد داریم اطلاعاتی را پست میکنیم ، ما نیاز به یک فرم و این چیز ها داریم که اطلاعات را در آن وارد کرده و ارسال کنیم . برای این کار یک متد دیگر Create داریم که از نوع GEt است . نام آن را نیز همانند زیر تغییر میدهیم . 



حال برنامه را اجرا میکنیم و اطلاعاتی را درآن ثبت میکنیم . 




داده جدید در برنامه ثبت شد ،  پس Method های ما به درستی کار می کنند . 



خروجی SQL :




متد های ما با توجه به اینکه درخواست ارسال شده Get است یا POST عمل میکنند . 

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