آموزش ASP.NET Core MVC

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

با سلام خدمت تمامی همراهان سایت میزفا ،
با یکی دیگر از جلسات آموزش طراحی سایت با 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 بیشتر آشنا خواهیم شد . امیدوارم که از مطالب آموزشی این جلسه لذت کافی را برده باشید در صورتی که سوالی داشتید حتما در قسمت نظرات این پست مطرح کنید.

برچسب ها

آرزو ابراهیمی

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

نوشته های مشابه

‫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 با زبان برنامه نویسی سی شارپ آشنایی داشته باشید . موفق باشید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
سایت خود را در گوگل مدیریت کنید + ۱۵ ساعت فیلم آموزشیجزئیات بیشتر اینجا کلیک کنید
بستن
با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

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

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
ترک میزفا خوب نیست!
دوره سئو، رایگان شد.
یک چیز متفاوت تجربه کنید
کاراکتر اشاره گر
دوره سئو، رایگان شد.
یک چیز متفاوت تجربه کنید
کاراکتر اشاره گر