با سلام . با یکی دیگر از جلسات آموزش ASP.NET در خدمت شما عزیزان هستم . در جلسه گذشته در این جلسه از آموزش ASP.NET Core قصد داریم تا به شما نحوه دریافت اطلاعاتی که کاربر سایت وارد کرده است را آموزش دهیم پس در ادامه با ما همراه باشید.
دریافت اطلاعات فرم
هنوز برای MVC مشخص نکرده ایم که پس از ارسال اطلاعات فرم به سرور چه کاری باید انجام شود هم اینک پروژه WellCome را باز کنید و سپس فرم ورود اطلاعات را تکمیل کرده و بر روی دکمه “ثبت نام در جشن” کلیک نمایید پس از انجام این کار ، مقادیر وارد شده در فرم را پاک می شوند . دلیل آن این است که با کلیک بر روی دکمه ، فرم اطلاعات را با متد اکشن در سرور ارسال کرده و این متد دوباره نمای Create را بارگذاری میکند. ( عملی شبیه Refresh کردن صفحه را انجام می دهد)
برای دریافت و پردازش اطلاعات فرم ، یکی از ویژگیهای کلیدی کنترلرها در MVC را به کار خواهیم برد. برای این کار متد اکشن دیگری با همان نام Create اضافه خواهیم کرد تا در کنترلر دومتد هم نام ولی با ویژگی های زیر داشته باشیم.
- متدی که به درخواست های Get و Post پاسخ دهد . تقاضای Get معمولا در هر زمان که بر روی لینکی در صفحه وب کلیک میکنید ایجاد میشود این نوع عملکرد اکشن مناسب زمانی است که کاربر به آدرس /WellCome/Create/ آمده و میخواهید برای نخستین بار فرم خالی را به او نمایش دهید.
- متد دیگری که مسئول پاسخ به درخواست عایدHTTP POST باشد فرمهایی که از ()Html.BeginForm استفاده میکنند به شکل پیش فرض اطلاعات را به صورت Post برای سرور (متداکشنی در یک کنترلر بر روی سرور ) ارسال میکنند . این نوع از عملکرد اکشن مسئول دریافت اطلاعات فرم و پردازش آنها خواهد بود .
به دلیل تفاوت ماهیت عملکرد پاسخ به درخواست های Get و Post نگهداری کدهای مربوط به آنها در دو متد جداگانه نظم بیشتری به ساختار کنترلر میدهد. هر دومتد توسط یک URL فراخوانی می شوند ولی MVC مراقب خواهد بود که بر اساس نوع درخواست دریافت شده متد مناسب را اجرا کند.
حالا تغییرات زیر بر روی کنترلر WellCome ایجاد کنید.
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using WellComeProject.Models; namespace WellComeProject.Controllers { public class WellCome : Controller { public ViewResult Index() { ViewBag.WellCome = "سلام مهمان گرامی به جشن ما خوش آمدید"; return View(); } [HttpGet] public ViewResult Create() { return View(); } [HttpPost] public ViewResult Create(GuestResponse guestResponse) // اطلاعات ذخیره شده در مدل را به عنوان ورودی میگیرد. { return View(); } } }
در کد بالا صفت HttpGet به متد اکشن Create که در گذشته داشتیم اضافه شده است این کار به MVC می فهماند که این متد باید درخواست های Get را پاسخ دهد . در ادامه متد اکشنی هم نام متد اکشن Create آورده ایم که همانگونه که حدس میزنید به معنی این است که باید به درخواست های Post پاسخ دهد . افزون بر این ها فضای نام WellCome.Models را هم برای راحتی کدنویسی در یک عبارت using به Controller اضافه کرده ایم.
بسیار خب ، به پایان این جلسه آموزشی رسیدیم در صورتی که سوالی پیرامون مقالات آموزشی ASP.NET Core داشتید حتما در قسمت نظرات این پست مطرح کنید.
2 پاسخ
ای کاش ترتیب کارها رو بصورت یک دو سه… مینوشتید که به خاطر سپاری آنها راحتتر و سریعتر بود . چرا که اینجوری لابلای کدها گم میشه
ممنونم از بازخورد شما
در آپدیت های مقالات این موارد را حتما مدنظر خواهم داد.