بررسی متد Hidden و HiddenFor در ASP.NET MVC

بررسی متد Hidden و HiddenFor در ASP.NET MVC

در این پست از وبسایت پرووید در رابطه با بررسی بررسی متد Hidden و HiddenFor در ASP.NET MVC صحبت خواهیم کرد. معماری MVC از معمول ترین و پرکاربردترین معماری های ساخت وب اپلیکیشن ها می باشد.

در این قسمت از سری آموزش ASP.NET MVC از وب سایت پرووید در رابطه با ایجاد کردن یک Hidden Field با استفاده از کلاس HtmlHelper صحبت خواهیم کرد. کلاس HtmlHelper دارای دو Extension Method با نامهای Hidden() و HiddenFor() می باشد که به منظور ایجاد کردن یک Hidden Field و یا همان <input type=”hidden”> مورد استفاده قرار می گیرند. در رابطه با Extension Method ها در آموزش کامل توسعه نرم افزار با سی شارپ صحبت کرده ایم. به منظور بررسی عملکرد این دو متد ما از یک Model Class به نام Student استفاده می کنیم که کد آن در قسمت زیر نشان داده شده است.

public class Student
{
    public int StudentId { get; set; }
    [Display(Name="Name")]
    public string StudentName { get; set; }
    public int Age { get; set; }
    public bool isNewlyEnrolled { get; set; }
    public string Password { get; set; }
}

بررسی متد Hidden()

متد Html.Hidden() به منظور ایجاد کردن یک HiddenField با یک نام و Value و HTML Attribute های مشخص مورد استفاده قرار می گیرد.

کدی که در قسمت زیر مشاهده می کنید نمایانگر Signature مربوط به متد Hidden() می باشد.

MvcHtmlString Html.Hidden(string name, object value, object htmlAttributes)

ضمناً با رجوع کردن به MSDN مایکروسافت می توانید دیگر Overload های مربوط به این متد را نیز بررسی کنید. کدی که در قسمت زیر مشاهده می کنید نحوۀ ایجاد کردن یک Hidden Field برای یک Property به نام StudentId از Model Class مربوطه که Student نام دارد را نشان می دهد.

@model Student

@Html.Hidden("StudentId")

بسته ی آموزش ویدئویی ساخت وب اپلیکیشن Full-stack با Angular 2 و ASP.NET Core

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی ساخت وب اپلیکیشن Full-stack با Angular 2 و ASP.NET Core دیدن کنید.

این کد باعث می شود که Hidden Field نهایی به پروپرتی StudentId اصطلاحاً Bind بشود و مقدار درون پروپرتی StudentId به درون این Hidden Field منتقل شده و مقدار درون این Hidden Field نیز به درون پروپرتی StudentId منتقل بشود. خروجی HTML نهایی شبیه به تصویر زیر خواهد بود.

<input id="StudentId" name="StudentId" type="hidden" value="1" />

بررسی متد HiddenFor()

متد HiddenFor() نیز به منظور ایجاد کردن یک Hidden Field مورد استفاده قرار می گیرد. این متد بصورت Strongly Typed عمل می کند. این موضوع به این معنی است که Property مورد نظر از Model Class مربوطه را این بار با استفاده از یک Lambda Expression و نه یک String برای این متد مشخص می کنیم. با استفاده از متد HiddenFor() یک <input type=”hidden”> ساخته می شود و یک Property از یک Model Class به آن Bind می شود. این موضوع باعث می شود که مقدار دورن آن Property به درون این Hidden Field منتقل شده و هر مقداری که در Hidden Field قرار بگیرد به Property مورد نظر منتقل بشود.

کدی که در قسمت زیر مشاهده می کنید Signature مربوط به متد HiddenFor() را نشان می دهد.

MvcHtmlString Html.HiddenFor(Expression<Func<dynamic,TProperty>> expression)

ضمناً با رجوع کردن به MSDN مایکروسافت می توانید دیگر Overload های مربوط به این متد را نیز بررسی کنید. کدی که در قسمت زیر مشاهده می کنید مثالی از نحوۀ استفاده کردن از متد HiddenFor() را نشان می دهد.

@model Student

@Html.HiddenFor(m => m.StudentId)

خروجی HTML نهایی شبیه به تصویر زیر خواهد بود.

<input data-val="true" data-val-number="The field StudentId must be a number." data-val-required="The StudentId field is required." id="StudentId" name="StudentId" type="hidden" value="1" />

همانطور که در مثال مشاهده می کنید اولین پارامتر برای متد HiddenFor یک Lambda Expression است که با استفاده از آن نام Property مورد نظر از Model class مربوطه را مشخص می کنیم. ما در این مثال از پروپرتی StudentId استفاده کرده ایم. این موضوع باعث می شود که یک Hidden Field با Attribute های Name و Id که با نام همان Property یعنی StudentId تنظیم شده اند ساخته بشود. موضوع آخر اینکه Value مربوط به این Hidden Field با مقدار درون پروپرتی StudentId که در این مثال عدد ۱ می باشد تنظیم خواهد شد. نکته مهم دیگر اینکه دقت کنید که با استفاده از data- به عنوان یک Attribute از Html5 عملیات Validation در ASP.NET MVC را برای این Hidden Field انجام خواهیم داد.

امیدواریم که این آموزش از وبسایت پرووید نیز مورد توجه تمامی دوستان عزیز قرار گرفته باشد. از شما دعوت می‌کنیم که از دیگر آموزش های ما در رابطه با فریم ورک MVC استفاده کنید. لیست کامل این آموزش ها را می توانید در پست مربوط به آموزش کامل توسعه وب اپلیکیشن با ASP.NET MVC مشاهده کنید.

مرتضی گیتی
بدون نظر

ارسال نظر

نظر
نام
ایمیل
وب سایت