یکدست کردن «ی» و «ک» در ASP.NET Core با پیادهسازی یک Model Binder سفارشی
معادل مطلب جاری را برای ASP.NET MVC 5.x در مطلب «یکدست کردن "ی" و "ک" در ASP.NET MVC با پیادهسازی یک Model Binder» میتوانید مطالعه کنید. در اینجا قصد داریم یک چنین قابلیتی را با توجه به تغییرات ASP.NET Core نیز تهیه کنیم.
تهیه یک binder provider پردازش رشتهها
کار model binding، تطابق اطلاعات رسیدهی از درخواست جاری، با پارامترهای اکشن متد یک کنترلر است. هر مقدار رسیده، به یک binder متناسب ارسال میشود تا پردازش آن مدیریت گردد. به صورت پیش فرض در ASP.NET Core، تعدد 14 عدد binder providers که اینترفیس IModelBinderProvider را پیاده سازی میکنند، در این بین جهت یافتن یک binder مناسب، بررسی خواهند شد. برای مثال کار یک binder، پردازش نوعهای پیچیدهاست (complex types) و دیگری نوعهای ساده (simple types) مانند int و string را پردازش میکند.
بنابراین اولین قدم تهیهی یک model binder سفارشی، تهیهی یک تامین کنندهی سفارشی است که با پیاده سازی اینترفیس IModelBinderProvider ارائه میشود. در اینجا چون میخواهیم نوعهای سادهی رشتهای را پردازش کنیم، اگر نوع جاری رسیده، یک نوع پیچیده بود (context.Metadata.IsComplexType) نال را بازگشت میدهیم تا model binder بعدی ثبت شدهی در لیست تامین کنندههای مرتبط، مورد آزمایش قرار گیرد.
سپس اگر نوع مدل جاری رشتهای بود، وهلهای از CustomStringModelBinder را بازگشت میدهیم (کلاسی است که آنرا در ادامه تهیه خواهیم کرد). درغیراینصورت همان SimpleTypeModelBinder توکار این فریمورک را بازگشت خواهیم داد.
- ۹۵/۱۱/۲۶
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.