สิ่งนี้เป็นไปได้ที่จะบรรลุภายในไฟล์ตัวช่วยที่มี@functions
ไวยากรณ์ แต่ถ้าคุณต้องการความสามารถในการอ่านแบบมีดโกนที่คุณอ้างถึงคุณจะต้องโทรหาผู้ช่วยทั่วไปเพื่อทำ HTML ให้พอดีและเสร็จสิ้น
โปรดทราบว่าฟังก์ชันในไฟล์ Helper เป็นแบบคงที่ดังนั้นคุณยังคงต้องส่งผ่านอินสแตนซ์ HtmlHelper จากหน้านี้ในกรณีที่คุณตั้งใจจะใช้วิธีการดังกล่าว
เช่น 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>
}
...