2010-08-12 2 views
4

При реализации вспомогательного расширения для аналогичного навигационного виджета в соответствии с описанием, описанным в this article. Я замечаю, что мой HTML теперь привязан к C# -коду, поэтому, если я хочу переустановить сайт с новым элементом управления меню, который требует немного другой разметки (например, <ul class="foo">...</ul> или отдельные имена классов для вложенных тегов <li>) Теперь мне нужно отредактировать как вспомогательное расширение, так и представление.ASP.NET MVC-вспомогательные расширения и разделение проблем

Использование вспомогательного расширения происходит быстрее и проще, но разве это не нарушает разделение проблем? Каковы ваши опыты по поддержанию такого кода? Я довольно новичок в Microsoft MVC, поэтому простите меня, если я упустил какой-то момент здесь.

ответ

2

Хорошо продуманный HTML-помощник должен быть универсальным и иметь очень свободные мнения о том, как он создает свой HTML. Вы можете добавить переопределяемые параметры в метод расширения, чтобы рендеринг был как можно более настраиваемым. Если у вас есть новые требования, и ваш существующий помощник недостаточно гибкий, расширьте его, чтобы соответствовать новым требованиям.

1

Я думаю, что вы правы и нашли подобное. Это быстрее/легче теперь и потенциальной будущей боли, «если» вам нужно изменить ситуацию в будущем. Вы могли бы сделать свой «помощник» прочитанным в шаблоне, который он использует, чтобы вы могли его изменить, перезапустите веб-приложение и посмотрите, как появляются ваши изменения. Однако это также увеличивает сложность. Я бы сказал, что много гибких говорит, что теперь все проще и быстрее, и понимайте, что в будущем, если ваши требования изменятся, тогда перейдите к нему. Кто знает, этого никогда не случится.

+1

Я согласен с тем, что сейчас лучше иметь рабочее решение, которое на 80% лучше, чем иметь 100% -ное решение, которое занимает несколько дней, но это, возможно, никогда не понадобится. Agile отлично подходит для очистки мышления. В моем случае мне определенно придется перестроить его несколькими способами. Я установил функцию Helper, которая принимает параметры моделирования, которые отработали нормально. Все еще не совсем удобно с HTML, сгенерированным внутри скомпилированного класса, но мы увидим, как он работает со временем. Спасибо за ваш POV! – rargie

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