2010-11-21 2 views
2

Можно ли получить метод EditorFor также визуализировать метку и валидацию для такого свойства, как метод EditorForModel?asp.net mvc editorfor

Теперь, когда я использую метод EditorFor для свойства (например, строки), он отображает только текстовое поле.

EDIT

Арнис Я попробовал его и там какие-то проблемы:

Метод расширения должны быть связаны с родовым класса HtmlHelper. Также возвращающая строка из помощника вызывала кодированный html.

Так я изменил код

public static MvcHtmlString EditorWithLabel<T>(this HtmlHelper<T> h,Expression<Func<T, object>> p) 
{ 
     return new MvcHtmlString(string.Format("{0}: {1}", h.LabelFor(p), h.EditorFor(p))); 
} 

Но главная проблема в том, что работает только с если Свойс имеет тип строки.

Когда свойство Decimal, Int, DateTime будет выброшено.

Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.

+0

Я уверен, что проблема в другом месте. Использование такого же подхода для ints, десятичных знаков, datetime и пользовательских типов тоже. –

+0

Может быть проблема, что я использую ASP.NET MVC 3 RC (Razor)? – user137348

ответ

1

Я хотел бы создать пользовательский HTML помощника (код тестировался):

public string EditorWithLabel<T>(this HtmlHelper h, 
    Expression<Func<T, object>> p){ 

    return string.Format("{0}: {1}",h.LabelFor(p),h.EditorFor(p)); 
} 

Это может быть достигнуто с templates, но я думаю, что пользовательский помощник подходит лучше.

+0

Пожалуйста, посмотрите мое сообщение, я его отредактировал. – user137348

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