2013-07-19 2 views
0

Я хочу написать свой собственный HTML-помощник, который расширяет существующий помощник. Например. Я хочу создать, чтобы расширить @Html.EditorFor так:Создание общих компонентов вида с помощью Razor

@Html.EditorFor(model => model.percent, new { data_a_sign="%", data_p_sign="s" }) 

становится:

@Html.PercentEditorFor(model => model.percent) 

Как бы один идти о написании этого?

Что-то вроде этого?

namespace AdminPortal.Helpers 
{ 
    public static class HtmlHelpers 
    { 
     public static MvcHtmlString PercentEditorFor<TModel>(this HtmlHelper html, 
      Expression<Func<TModel>> expression) 
     { 
      // Some Magic? 
     } 
    } 
} 

Любые указатели были бы весьма благодарны.

ответ

1

Это просто вопрос о возвращении существующего метода EditorFor со своего помощника:

public static MvcHtmlString PercentEditorFor<TModel>(this HtmlHelper html, 
      Expression<Func<TModel>> expression) 
     { 
      return html.EditorFor(...); 
     } 

Поместите свои собственные измененные параметры в метод EditorFor. Никакой магии не требуется :)

+0

Спасибо, но я думаю, что неправильно понял мою проблему. Я хочу добавить собственные атрибуты класса и данных к вводу, создаваемому '@ Html.EditorFor', но когда я добавляю эти атрибуты, они игнорируются шаблоном. – Martinffx

+0

Я задал новый вопрос здесь: http://stackoverflow.com/questions/17742488/how-to-add-custom-data-attributes-and-classes-to-html-editorfor – Martinffx

Смежные вопросы