EditorForModel و HiddenInput – جلسه ۳۵

EditorForModel HiddenInput - Session 35

در این جلسه از آموزش ASP.NET Core به معرفی EditorForModel خواهیم پرداخت و خصوصیت HiddenInput را بررسی میکنیم. هلپر EditorForModel جهت ایجاد فرم ویرایش برای مدل متصل شده به نما مورد استفاده قرار میگیرد. همچنین HiddenInput جهت پنهان نمودن یک یا چند فیلد از مدل مورد ویرایش کاربرد دارد.

EditorForModel در ASP.NET Core MVC

همانگونه که اشاره نمودیم، این HTML Helper جهت ایجاد فرم ویرایش داده‌های ذخیره شده مورد استفاده قرار میگیرد. ما برای ایجاد فرم ویرایش در این پروژه ابتدا میبایست درون CostController یک اکشن‌متد متناسب ایجاد نماییم. درون قسمت HTTPGET این اکشن‌متد ابتدا میبایست رکورد مورد نظر را واکشی نموده و به نمای مربوطه ارسال نماییم. در این پروژه با استفاده از متد GetCostByID که قبلا در ریپازیتوری Cost ایجاد نمودیم میتوانیم رکورد مورد نظر را واکشی نماییم.

        [HttpGet]
        public IActionResult Edit(int id)
        {
            var SelectCost = costRepository.GetCostByID(id);
            return View(SelectCost);
        }

سپس درون مسیر Views/Cost یک نمای جدید، همنام با اکشن‌متدفوق ایجاد میکنیم. این نما را بوسیله Model Directive به مدل Cost متصل میکنیم. و در ادامه بوسیله هلپر BeginForm و EditorForModel فرم مربوط به ویرایش را ایجاد میکنیم.

@model Cost
@{
    ViewBag.Title = "Edit Cost Record";
}
@using (Html.BeginForm()) { 
    @Html.EditorForModel()
    <br />
    <button type="submit">Save</button>
}

خصوصیت HiddenInput جهت پنهان کردن فلید مورد نظر در ASP.NET Core MVC

با اجرای پروژه پس از اضافه نمودن فرم ویرایش، مشاهده خواهید کرد که تمامی فیلدهای مدل Cost جهت ویرایش، نمایش داده میشوند. در صورتی که برخی از فیلدها با توجه به ماهیت آنها میبایست پس از ثبت ثابت بمانند. به عنوان مثال فیلد ID که به عنوان فیلد کلید و شاخصه یکتا میباشد، باید بدون تغییر باقی بماند. پس برای پنهان نمودن این فیلد و یا هر فیلد دلخواه دیگر میتوانیم از خصوصیت HiddenInput در بالای Property مورد نظر از مدل مربوطه استفاده نمود. این خصوصیت در فضای‌نام Microsoft.AspNetCore.Mvc قرار دارد و میبایست به مدل مربوطه اضافه گردد.

    public class Cost
    {
        [HiddenInput(DisplayValue =false)]
        public int ID { get; set; }
        public decimal Amount { get; set; }
        public DateTime Date { get; set; }
        public string Comment { get; set; }
        public string Category { get; set; }
        public int PaymentMethod { set; get; }
    }

همانگونه که در قطعه کد فوق مشاهده میکنید برای پنهان نمودن فیلد ID در قسمت فوقانی آن، از خصوصیت [HiddenInput(DisplayValue =false)] استفاده نمودیم.

در صورت نیاز به جزئیات بیشتر، میتوانید ویدئو آموزشی این جلسه را تماشا نمایید. همچنین برای آگاهی از جلسات بعدی این دوره آموزشی، ما را در اینستاگرام، تلگرام، یوتیوب و آپارات دنبال کنید. همچنین لیست کامل جلسات در این قسمت در دسترس شما میباشد.

تماشای ویدیو در یوتیوب ما

دانلود اسلایدهای آموزشی این جلسه از اینجا

برچسب ها

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
0
افکار شما را دوست داریم، لطفا نظر دهید.x