asp.net mvc редактор для - PullRequest
       1

asp.net mvc редактор для

2 голосов
/ 21 ноября 2010

Можно ли получить метод EditorFor, который также отображает метку и проверку для свойства, как метод EditorForModel?

Теперь Когда я использую метод 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)));
 } 

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

Если свойство имеет тип Decimal, Int, DateTime, будет выдано исключение.

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

1 Ответ

1 голос
/ 21 ноября 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...