Я разрабатываю приложение ASP.NET MVC 4, которое будет использоваться для настройки сложного приложения. Я хочу иметь одну страницу конфигурации с несколькими вкладками. Каждая вкладка будет использоваться для настройки другой части системы, и когда вы нажмете на нее, правильная форма (каждая вкладка конфигурации будет отдельным частичным представлением) будет загружена с помощью AJAX. Я хочу иметь кнопку «Сохранить изменения» внизу страницы, которая сохранит изменения со всех вкладок.
Поскольку сама система модульная, я хочу сделать модульной и конфигурационную площадку. Это означает, что я хочу, чтобы каждая вкладка была своего рода плагином, который предоставляет мне следующие методы (путем наследования от интерфейса): GetConfigurationPartialView (который возвращает частичное представление с моделью представления для этой вкладки), SaveChanges (который сохранит конфигурацию в БД как черновик) и GetConfigurationXml, который экспортирует полную конфигурацию XML и применит ее в системе.
Мои вопросы:
- Что вы думаете об этом дизайне? у вас есть идеи получше?
- Как вы рекомендуете реализовать эту кнопку «Сохранить изменения» в главном представлении? Как я могу перебрать все мои плагины и вызвать метод SaveChanges каждого плагина, передать ему правильный объект модели (который является моделью частичного представления), заполненный всеми данными, не имея глубоких знаний о каждом объекте плагина в основном контроллере/представлении, поэтому я может держать эту систему легко расширить?
- Некоторые из вкладок содержат сетки с данными. я начал изучать сетку Kendo UI. Я хочу, чтобы пользователь делал все в сетке, в клиенте (удаляя и добавляя новые строки), а затем я хочу, чтобы в методе SaveChanges, о котором я писал, получить список на стороне сервера всех изменений, которые сделал клиент ( например, в псевдокоде: changes[0]={Action = Delete, ProductID = 1}, changes[1]={Action=New, ProductID=1, Name="aaa" }). Как мне это сделать?
Спасибо.