Hal ini dimungkinkan untuk dicapai di dalam file helper dengan @functions
sintaks tetapi jika Anda menginginkan keterbacaan gaya pisau cukur yang Anda maksud, Anda juga perlu memanggil helper biasa untuk melakukan fit dan menyelesaikan HTML.
Perhatikan bahwa fungsi dalam file Helper bersifat statis sehingga Anda masih perlu meneruskan instance HtmlHelper dari halaman jika Anda bermaksud menggunakan metodenya.
mis. Views \ MyView.cshtml:
@MyHelper.DoSomething(Html, m=>m.Property1)
@MyHelper.DoSomething(Html, m=>m.Property2)
@MyHelper.DoSomething(Html, m=>m.Property3)
App_Code \ MyHelper.cshtml:
@using System.Web.Mvc;
@using System.Web.Mvc.Html;
@using System.Linq.Expressions;
@functions
{
public static HelperResult DoSomething<TModel, TItem>(HtmlHelper<TModel> html, Expression<Func<TModel, TItem>> expr)
{
return TheThingToDo(html.LabelFor(expr), html.EditorFor(expr), html.ValidationMessageFor(expr));
}
}
@helper TheThingToDo(MvcHtmlString label, MvcHtmlString textbox, MvcHtmlString validationMessage)
{
<p>
@label
<br />
@textbox
@validationMessage
</p>
}
...