Bu ,@functions
sözdizimi ile bir yardımcı dosyanın içinde elde etmek mümkündür, ancak bahsettiğiniz ustura tarzı okunabilirliği istiyorsanız, HTML sığdırması ve bitirmesi için normal bir yardımcı çağırmanız da gerekecektir.
Bir Helper dosyasındaki işlevlerin statik olduğunu ve bu nedenle, yöntemlerini kullanmayı planlıyorsanız sayfadan HtmlHelper örneğini geçirmeniz gerekeceğini unutmayın.
örneğin Görünümler \ 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>
}
...