Я отправил ответ на похожий вопрос здесь .
Если вы хотите универсальные стили, вы можете получить Модели ваших пользовательских шаблонов из базового класса TemplateViewModel, который будет поддерживать ваши требуемые стили:
public interface ITextSpecifier
{
int? Size { get; }
bool AutoGrow { get; }
}
public class TemplateViewModel<T> where T: class
{
public IDictionary<string, string> Attributes { get; }
public ITextSpecifier TextStyle { get; private set; }
public IColorSpecifier ColorStyle { get; }
public T TextStyle(int size, bool autogrow)
{
TextStyle = new TextSpecifier(size, autogrow);
return this;
}
}
public class TextBoxViewModel: TemplateViewModel<TextBoxViewModel>
{
}
<%= Html.EditorFor(x => new TextBoxViewModel(Model.StringData).TextStyle(10, false)) %>
В шаблоне:
<!-- template page derived from typed control for TextBoxViewModel -->
<input type='text' <%= Model.TextStyle.Size != null
? "size='" + Model.TextStyle.Size + "'" : "" %> ... />
Это немного работы, поэтому я надеюсь, что они изобрели какой-то общий метод в выпуске MVC v2.