آموزش MVC-مفهوم Helper

چاپ

Helperهای HTML برای تغییر خروجی HTML به کار می روند.


HTML Helpers

Helperهای HTML در MVC، شبیه کنترل های WebForm هستند.

Helperهای HTML، دقیقا مانند کنترل های WebForm در ASP.NET، برای تغییر خروجی HTML استفاده می شوند. اما Helperهای HTML سبک تر هستند.

Helperهای HTML بر خلاف کنترل های WebForm، مدل مبتنی بر رویداد و view state ندارند.

در اکثر حالات، یک Helper، متدی است که یک رشته را بر می گرداند.

در MVC، این قابلیت وجود دارد که یا helperهای شخصی سازی شده برای خودتان تعریف نمایید، یا می توانید ازHelperهای  HTML آماده استفاده نمایید.


HTML Helper های استاندارد

MVC دارای Helperهای استانداری برای بعضی از تگ های HTML، مانند لینک و فرم HTML، می باشد.


لینک های HTML

آسان ترین روش برای render گرفتن از لینک HTML استفاده از helperی با نام ()HTML.ActionLink می باشد.

در MVC، متد ()Html.ActionLink، به view لینک نمی شود. این متد یک لینک به actionی که در controller قرار دارد، ایجاد می نماید.

گرامر Razor:

@Html.ActionLink("About this Website", "About")

گرامر ASP:

<%=Html.ActionLink("About this Website", "About")%>

اولین پارامتر متنی است که لینک نمایش می دهد و دومین پارامتر نام action ی است که در controller قرار دارد.

()Html.ActionLink که در بالا ایجاد شد، خروجی HTML زیر را تولید می کند:

<a href="/Home/About">About this Website</a>

()Html.ActionLink دارای ویژگی های متعددی است:

خصوصیتتوضیح
.linkText متن لینک را مشخض می کند
.actionName نام action را مشخص می کند
.routeValues مقداری که به action ارسال می شود را مشخص می کند
.controllerName نام کنترلر را مشخص می کند
.htmlAttributes مجموعه خصوصیت مربوط به link را مشخص می کند
.protocol پروتکل لینک را مشخص می کند
.hostname نام host لینک را مشخص می کند
.fragment anchor لینک را مشخص می کند

نکته: شما می توانید مقادیر را به action ارسال نمایید. برای مثال، شما می توانید id یک رکورد پایگاه داده را برای action مربوط به ویرایش جدول مربوطه ارسال نمایید.

گرامر Razor در #C:

@Html.ActionLink("Edit Record", "Edit", new {Id=3})

گرامر Razor در VB:

@Html.ActionLink("Edit Record", "Edit", New With{.Id=3})

()Html.ActionLink که در بالا ایجاد شد، خروجی HTML زیر را تولید می کند:

<a href="/Home/Edit/3">Edit Record</a>

عناصر فرم HTML

HTML helper های زیر برای render کردن تگ های مربوط به فرم های HTML استفاده می شود:

گرامر ASP.NET در #C:

<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<% using (Html.BeginForm()){%>
<p>
<label for="FirstName">First Name:</label>
<%= Html.TextBox("FirstName") %>
<%= Html.ValidationMessage("FirstName", "*") %>
</p>
<p>
<label for="LastName">Last Name:</label>
<%= Html.TextBox("LastName") %>
<%= Html.ValidationMessage("LastName", "*") %>
</p>
<p>
<label for="Password">Password:</label>
<%= Html.Password("Password") %>
<%= Html.ValidationMessage("Password", "*") %>
</p>
<p>
<label for="Password">Confirm Password:</label>
<%= Html.Password("ConfirmPassword") %>
<%= Html.ValidationMessage("ConfirmPassword", "*") %>
</p>
<p>
<label for="Profile">Profile:</label>
<%= Html.TextArea("Profile", new {cols=60, rows=10})%>
</p>
<p>
<%= Html.CheckBox("ReceiveNewsletter") %>
<label for="ReceiveNewsletter" style="display:inline">Receive Newsletter?</label>
</p>
<p>
<input type="submit" value="Register" />
</p>
<%}%>