Вот мой код для такого расширения. Обратите внимание, что ParameterDictionary является моим собственным классом. Я думаю, что расширения MVC вместо этого используют RouteValueDictionary, но мне кажется неправильным полагаться на это, поэтому я создал свой собственный класс для этой конкретной цели. Вам нужно будет импортировать пространство имен, содержащее ваш класс HtmlExtensions, в представление, где вы хотите использовать эти расширения (и добавить ссылку на проект, содержащий класс, если его нет в вашем веб-проекте).
public static class HtmlExtensions
{
public static string Label( this HtmlHelper helper,
string labelFor,
string value,
object htmlAttributes )
{
TagBuilder labelBuilder = new TagBuilder( "label" );
if (!string.IsNullOrEmpty( labelFor ))
{
labelBuilder.Attributes.Add( "for", labelFor );
}
labelBuilder.MergeAttributes( new ParameterDictionary( htmlAttributes ) );
labelBuilder.SetInnerText( value );
return labelBuilder.ToString( TagRenderMode.Normal );
}
}
Использование:
<%= Html.Label( "Name", new { @class = "input-label" } ) %>
<%= Html.TextBox( "Name" ) %>