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