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

دوشنبه 29 آذر 1395

ما در این مقاله ، تابع 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 عمل میکنند . 

آموزش asp.net mvc

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید