دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۴
  • شهریور

جلسه ۱۲ : مدل اتصال (Model Binding) در ASP.NET MVC

  • دسته‌بندی‌ها :
جلسه ۱۲ : مدل اتصال (Model Binding) در ASP.NET MVC
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش ASP.NET MVC ، را دنبال می کنند. در این آموزش قصد داریم تا شما را با مدل اتصال (Model Binding) در ASP.NET MVC آشنا کنیم. برای فهمیدن و درک Model Binding در ASP.NET MVC یا مدل اتصال در ASP.NET MVC ، ابتدا باید ببینیم که چگونه می شود مقادیر درخواست http را در یک متد اجرایی با استفاده از قالب ASP.NET دریافت کرد. که در ادامه ی مباحث این آموزش به چگونگی انجام اینکار پرداخته ایم.

       Model Binding در ASP.NET MVC

      به شکل زیر توجه کنید که چگونه مقادیر درخواست را با روش های HttpGET و HttpPOST در متد اجرایی دریافت می کنیم:

       Model Binding در ASP.NET MVC

      همانطور که در شکل فوق مشاهده می کنید ما از درخواست های Request.QueryString و Request برای دریافت مقادیر از HttpGet و HttpPOST  استفاده می کنیم.

      در مدل اتصال (model binding) فریم ورک MVC مقادیر http را به پارامترهای متد اجرایی تبدیل می کند.

      اتصال به نوع اولیه (primitive type)

      درخواست HttpGET اطلاعات را در یک رشته ی پرس و جو قرار می دهد.

      MVC به طور خودکار رشته ی پرس و جو را به پارامترهای متد اجرایی تبدیل می کند.

      به عنوان مثال، query string “id” در درخواست GET زیر به طور خودکار به پارامتر id از متد اجرایی ()Edit مرتبط می شود:

      اتصال به نوع اولیه

      شما همچنین می توانید چندین پارامتر را در متد اجرایی با انواع داده های مختلف داشته باشید.

      مقادیر رشته درخواستی به پارامترها بر اساس نام تطبیق تبدیل می شوند.

      برای مثال http://localhost/Student/Edit?id=1&name=John به ID و نام متد اجرایی Edit اشاره دارد:

      مثال : 

      اتصال به نوع پیچیده (Complex type)

      Model binding همچنین برای نوع پیچیده نیز کار می کند.

      Model binding در MVC بطور خودکار فیلد داده را از درخواست HttpPOST به پارامتر نوع پیچیده در متد اجرایی تبدیل می کند.

      کلاس های زیر را در نظر بگیرید:

      مثال : 

      اکنون می توانید یک متد اجرایی که شامل نوع پارامتر Student است را ایجاد کنید.

      در مثال زیر متد Edit شامل نوع پارامتر Student است:

      مثال : 

      بنابراین در حال حاضر، MVC  به طور خودکار مقادیر مجموعه فرم را به پارامتر Student هنگامی که فرم درخواست HTTP POST را به متد Edit Action اعمال می کند، ارسال می کند.  همانطور که در زیر نشان داده شده است :

       

      اتصال به نوع اولیه

      بنابراین در نتیجه بطور خودکار فیلدهای فرم به پارامتر نوع پیچیده در متد اجرایی متصل می شود.

      همچنین می توانید پارامتر نوع FormCollection را در متد اجرایی به جای نوع پیچیده برای نمایش تمام مقادیر از فیلدهای فرم استفاده کنید:

      استفاده از FormCollection

      ویژگی Bind

      چارچوب ASP.NET MVC همچنین شما را قادر می سازد که مشخص کنید کدام ویژگی ها را از کلاس مدل می خواهید ارتباط دهید.

      Bind به شما اجازه می دهد تا این ویژگی ها را مشخص کنید.

      در مثال زیر متد اجرایی تنها اتصال  StudentId و StudentName به یک مدل Student را نشان می دهد:

      مثال : 

      همچنین می توانید از ویژگی های Exclude زیر نیز استفاده کنید:

      مثال : 

      ویژگی Bind عملکرد را با ویژگی هایی که مورد نیاز است بهبود می بخشد.

      بررسی درون Model Binding

      مدل اتصال به طور خودکار مقادیر درخواست را به یک آبجکت اولیه یا پیچیده تبدیل می کند.

      اتصال به مدل یک فرآیند دو مرحله ای است که در مرحله ی اول ارزش ها را از درخواست http ورودی دریافت می کند.

      در مرحله ی دوم نوع اولیه یا پیچیده را با این مقادیر جمع می کند.

      Value provider مقادیر را از درخواست دریافت و Model Binders نیز مقادیر را جمع بندی می کنند.

      عملکرد Model binding

      value provider پیش فرض، مقادیر را از منابع زیر جمع آوری می کند:

      ۱- از یک عمل زیر مجموعه

      ۲- فیلدهای فرم

      ۳- مقادیر ویژگی ها در JSON Request

      ۴- اطلاعات مسیرها

      ۵- پارامترهای Querystring

      ۶- فایل های ارسال شده

      کلام آخر

      در مباحث فوق، تا حدودی با کاربردها و چگونگی استفاده از Model Binding در ASP.NET MVC آشنا شدید. در بخش بعدی به چگونگی ایجاد یک نمایه (view) خواهیم پرداخت.

      QR:  جلسه ۱۲ : مدل اتصال (Model Binding) در ASP.NET MVC
      به اشتراک بگذارید