В традиционных приложениях ASP.NET Web Form, UserControls - отличный способ инкапсулировать функциональность, чтобы ее можно было повторно использовать. Однако UserControls не очень хорошо вписывается в модель MVC. Они часто сильно используют ViewState, и они размывают разделение опасений, которые поддерживает MVC.
Мой вопрос в том, как вам лучше всего расслоить функциональность, чтобы он мог использоваться совместно с приложениями MVC?
В качестве примера рассмотрим от/до даты-селектор UserControl, что:
- позволяет пользователю выбирать две даты либо с использованием наложения JavaScript, либо путем ввода в день, месяц и год в отдельные поля.
- может быть настроен по умолчанию на дату сегодняшнего дня и завтрашнего дня или на даты выбора разработчика
- проверяет даты, которые возвращаются от пользователя, чтобы гарантировать, что дата до даты
- предоставляет свойства From и To, к которым можно получить доступ с помощью кода
Как мне лучше построить что-то подобное в .NET MVC, чтобы я мог легко его повторно использовать?
Обратите внимание, что для полного эмуляции функций пользовательского управления компонент MVC должен будет управлять представленными данными формы и валидацией, а не только презентацией.