ویرایش حرفه‌ای رکورد با ViewModel در EF Core

ویرایش حرفه‌ای رکورد با ViewModel در EF Core

تصور کنید در حال کار روی یک پروژه واقعی هستید. به شما وظیفه داده شده که فرمی برای ویرایش اطلاعات کاربران ایجاد کنید. اما باید مراقب باشید که فقط فیلدهای مجاز تغییر کنند و داده‌های حساس مثل نقش کاربر یا وضعیت حساب او تغییر نکنند. اینجاست که ViewModel به کمک شما می‌آید. ViewModel به شما این امکان را می‌دهد که داده‌ها را دقیقاً همان‌طور که نیاز دارید به View ارسال کنید و از تغییرات ناخواسته جلوگیری کنید. در ادامه با ویرایش حرفه‌ای رکورد با ViewModel در EF Core آشنا میشویم.

بارگذاری داده‌ها در ViewModel

برای ویرایش حرفه‌ای رکورد با ViewModel ابتدا داده‌ها را از دیتابیس بارگذاری کرده. و آن‌ها را به ViewModel تبدیل می‌کنیم. و بعد به سمت ویو ارسال میکنیم.

public async Task<IActionResult> Edit(int? Id)
{
    if (Id == null)
    {
        return NotFound();
    }
    var DeveloperM = await _context.developers.FindAsync(Id);
    if (DeveloperM == null)
    {
        return NotFound();
    }
    var DeveloperVM = new EditDeveloperViewModel()
    {
        Id = DeveloperM.Id,
        Email = DeveloperM.Email,
        Phone = DeveloperM.Phone,
    };
    return View(DeveloperVM);
}

پردازش فرم در سرور

زمانی که فرم ارسال می‌شود. داده‌های ViewModel را دریافت کرده. و در دیتابیس ذخیره می‌کنیم.

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int Id, [Bind("Id,Email,Phone")] EditDeveloperViewModel DeveloperVM)
{
    if (Id != DeveloperVM.Id)
    {
        return NotFound();
    }
    if (ModelState.IsValid)
    {
        try
        {
            var DeveloperM = await _context.developers.FindAsync(Id);
            if (DeveloperM == null)
            {
                return NotFound();
            }
            DeveloperM.Email = DeveloperVM.Email;
            DeveloperM.Phone = DeveloperVM.Phone;
            _context.developers.Update(DeveloperM);
            await _context.SaveChangesAsync();
            return RedirectToAction("Index");
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!DeveloperExists(DeveloperVM.Id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }
    }
    return View(DeveloperVM);
}
private bool DeveloperExists(int Id)
{
    return _context.developers.Any(a => a.Id == Id);
}

چرا از ViewModel در استفاده کنیم؟

  • امنیت داده‌ها: تنها داده‌هایی که در ViewModel تعریف شده‌اند، از سمت کاربر ارسال می‌شوند.
  • سادگی و خوانایی کد: ViewModel کدی ساده‌تر و قابل‌فهم‌تر ارائه می‌دهد.
  • جداسازی منطق داده‌ها: ViewModel منطق داده‌های دیتابیس را از View جدا می‌کند.

استفاده از ViewModel در EF Core 9 یک روش حرفه‌ای و امن برای مدیریت داده‌ها و عملیات CRUD مانند Edit است. این روش به شما کمک می‌کند کدی خوانا، ساختاریافته و امن‌تر بنویسید که در پروژه‌های واقعی کاربرد بسیاری دارد. در ادامه آموزش، به بررسی دیگر عملیات‌ها با ViewModel می‌پردازیم. همراه ما باشید!

مشاهده در آپارات یا یوتیوب

محتوای ویدیویی این صفحه در سایت قابل مشاهده است. اما اگر عادت دارید توی پلتفرم آپارات یا یوتیوب ویدیوها را مشاهده کنید، می‌توانید از دکمه‌های زیر استفاده کنید.

تماشای ویدیوی ویرایش حرفه‌ای رکورد با ViewModel در EF Core در آپارات و یوتیوب

اشتراک‌گذاری با یک کلیک

با یک کلیک، محتوای این صفحه را در شبکه‌های اجتماعی، ایمیل یا پیام‌رسان‌های مورد علاقه‌تان به‌سرعت به اشتراک بگذارید.

اشتراک‌گذاری صفحه ویرایش حرفه‌ای رکورد با ViewModel در EF Core در شبکه‌های اجتماعی

نظرات ارزشمند شما

نظرات شما برای ما ارزشمند است و آنها را میخوانیم و پاسخ میدهیم.

تصویر حمید پورفریدونی

با سلام،
من با ویو مدل از چند تا جدول اطلاعات رو دریافت می کنم و توی فرم میزارم ولی وقتی می خوام ویرایش کنم اطلاعات رو به ویو مدل بر نمی گردونه و خالی ارسال میکنه.

فرم افزودن دیدگاه

با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.

با خدمات تهران آی تی آشنا شوید

تهران آی تی با افتخار خدمات زیر را ارائه می‌دهد.