پروژه‌ی عملی – استفاده از مقید سازی مدل

آموزش ASP.NET Core
آموزش ASP.NET Core

با سلام خدمت تمامی همراهان سایت میزفا ،
با یکی دیگر از جلسات آموزش طراحی سایت با ASP.NET Core و در ادامه ی پروژه‌ی خوش آمدگویی در خدمت شما دوستان عزیز  هستم .

استفاده از مقید سازی مدل

در جلسه گذشته دو متد به نام Create در کنترلر WellCome ایجاد کردیم که یکی دارای خصوصیت Get بود و برای نمایش نمای Create و فم ورود اطلاعات به کار رفته بود و دیگری که از نوع Post بود شیئی از یک کلاس GuestResponse را به عنوان پارامتر ورودی می‌پذیرد حال این سوال پیش می‌آید که اطلاعات فرم چگونه در قالب یک شی از نوع کلاس GuestResponse به متد اکشن ارسال می‌شوند؟
پاسخ در مفهومی به نام مقیدسازی مدل به عنوان یکی از ویژگی های مهم MVC  خلاصه  شده که موجب می‌شود داده‌های دریافت شده به صورت زوج های کلید/مقدار درآمده و از آنها برای ایجاد خصوصیات مدل ( در اینجا خصوصیات تعریف شده در کلاس GuestResponse) استفاده شود.
مقید سازی مدل جنبه مهمی از MVC است که موجب می شود به جای کار سخت پردازش داده های رسیده از طرف مرورگر تنها با اشیا ایجاد شده از کلاس های #C سرکار داشته باشید خصوصیت های شی GuestResponse که برای پارامتر متد فرستاده می‌شود به طور خودکار با داده‌هایی که کاربر در فیلدهای فرم وارد کرده است پر می‌شوند ‌.
یکی از اهداف برنامه نمایش لیستی از مهمان ها است بنابراین باید پاسخ هایی که دریافت می شوند در جایی ذخیره گردند در اینجا از یک کلکسیون ( در حقیقت ذخیره در حافظه ) برای این کار استفاده خواهیم کرد.توجه دارید که در یک پروژه واقعی بهتر است این اطلاعات را در جدولی در پایگاه داده ذخیره کرد.
اکنون با کلیک راست بر روی پوشه Models و انتخاب گزینه Class از فهرست Add کلاسی به نام Repository.cs به پروژه اضافه کنید .
استاتیک بودن کلاس Repository و اعضای آن  ،کار دسترسی به آن ها را از محل های مختلف پروژه آسان می‌کند.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace WellComeProject.Models
{
    public static class Repository
    {
        private static List<GuestResponse> responses = new List<GuestResponse>(); // GuestResponse تعریف یک لیست از نوع 
        public static IEnumerable<GuestResponse> Responses
        {
            get
            {
                return responses;
            }
        }

        public static void AddResponse(GuestResponse response) 
        {
            responses.Add(response);
        }
    }
}

در کد بالا در کلاس Repository.cs یک لیست از نوع GuestResponse به نام responses تعریف شده است و سپس یک متد به نام AddResponse تعریف شده که یک شی از نوع کلاس GuestResponse  را به عنوان ورودی می‌گیرد و در لیست responses ذخیره می‌کند.

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

فیلم آموزشی asp.net core 2

آرزو ابراهیمی
بیش از 6 سال است که زمینه طراحی و توسعه سایت فعالیت می‌کنم، طراح و برنامه نویس انواع سامانه‌های تخصصی پزشکی، مناقصات، فروشگاهی و … بودم و هستم و هدفم در سایت میزفا ارائه اطلاعات بروز و ناب در زمینه طراحی سایت است. تا از این طریق بتونم تجربیات و دانسته های خودم را با تمامی علاقمندان به مباحث طراحی سایت به اشتراک بزارم .

فیلم آموزشی asp.net core 2

2 نظر

2 پاسخ

  1. سلام
    توضیح ندادین این خط کد چیکار میکنه …

    public static IEnumerable Responses
    {
    get
    {
    return responses;
    }
    }

    1. با سلام…. در کد زیر
      private static List<GuestResponse> responses = new List<GuestResponse>();
      ما یک فیلد از نوع Listبه نام responses تعریف کردیم که سطح دسترسی این فیلد private است و ما باید از property ها برای مقداردهی و دسترسی به مقدار این فیلد استفاده کنیم بنابراین در کد زیر

        public static IEnumerable<GuestResponse> Responses
              {
                  get
                  {
                      return responses;
                  }
              }
      

      ما یک خصوصیت یا property تعریف کردیم تا از طریق این خصوصیت در خارج از کلاس بتونیم به مقدار فیلد دسترسی داشته باشیم … این کد رو توضیح ندادم چون افرادی که با زبان برنامه نویسی سی شارپ و شی گرایی اشنایی دارن به راحتی می تونن متوجه عملکرد این کدها بشن … لازمه که حتما برای شروع اموزش Core با زبان برنامه نویسی سی شارپ آشنایی داشته باشید . موفق باشید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=