Когда я должен написать помощник HTML как метод расширения вместо простого статического метода? - PullRequest
1 голос
/ 16 ноября 2011

Существует два способа создания настраиваемого помощника HTML в ASP.NET MVC:

  1. Вы можете создать класс статическим методом, который выводит HTML, или
  2. . Вы можетедобавьте метод расширения к классу HtmlHelper.

Вариант # 1 кажется проще и проще.

  • В чем преимущество варианта № 2?
  • Когда я захочу сделать это вместо Варианта № 1?
  • Предоставляет ли вариант № 2 какие-либо преимущества или дополнительные функции?

Отредактировано, чтобы добавить:

В этой конкретной ситуации я пытаюсь вывестистрока, которая сформирована через связку условной логики.Кажется неправильным помещать это в мою модель, но делать все это в Razor кажется утомительным и ненужным - или я ошибаюсь?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2011

В нашем текущем проекте мы начали с множества расширений HtmlHelper, но мы понимаем, что это неправильно, в основном потому, что:

  • Это нарушает шаблон, потому что вы пишете HTML через C #код за пределами Views.
  • Это совсем не подходит для проверки !!

Так что мы просто отбрасываем почти все эти помощники, и мы реализовали ViewModels и Templates для всехконтроллеры.Это правильный способ сделать это.

Это лучшее место для начала: Шаблоны ASP.NET MVC 2, Часть 1. Введение

Итог, если выстроим HTML с помощью кода, что-то не так с логикой / шаблоном вашего проекта.

0 голосов
/ 16 ноября 2011

Я считаю, что вариант 2 намного чище для написания HTML, поскольку он отделен от кода C #. И в реальных видах бритвы, где вы должны поместить свой HTML.

Предполагается, что вы говорите о синтаксисе @helper в бритве

...