MVC – создание новых представлений без добавления действий в контроллер

StackOverflow https://stackoverflow.com/questions/1860731

Вопрос

Я работаю над мини-приложением, похожим на CMS, с использованием asp.net MVC 1.0 (я обновлю его после выхода версии 2.0).Одна из функций, которая мне нужна и которая очень важна для CMS, — это возможность администратора добавлять страницы на свой сайт.

По сути, если администратор хочет добавить страницу под названием «Ссылки», я хочу, чтобы он мог сделать это без каких-либо хлопот, связанных с добавлением действия в контроллер и компиляцией новой сборки.

У меня есть идея решения, и я хочу знать, что думает сообщество.

Я думаю, что мне следует написать класс (ради аргументов назовем его UserGeneratedGenericController), который расширяет класс Controller.В этом классе у меня будет одно действие, которое считывает параметр и перенаправляет его в представление, соответствующее параметру, переданному действию.

Мне также придется редактировать маршрутизацию в Global.asax.cs файл

поэтому/UserGeneratedGenericController/Links произойдет то же действие, которое/UserGeneratedGenericController/News попадет, но отобразит виды по желанию.

Что ты скажешь?Мне интересны ваши комментарии по этому подходу и ваши предложения по другим подходам.

Это было полезно?

Решение

я думаю, что то, что ты представил, это правильный путь

Другие советы

Вы хотите взять заголовок страницы и создать для него уникальный URL-адрес, а затем иметь возможность загружать контент из базы данных на основе URL-адреса (используя URL-адрес в качестве идентификатора, а не фактический идентификатор базы данных). ).

public ActionResult Index(string UrlSlug) {
  // Get Content For Page {UrlSlug}
}

Таким образом, ваш маршрут будет /Pages/{UrlSlug}, а образец — /Pages/Links.Затем ваше действие Index на вашем PagesController будет извлекать фрагмент URL-адреса (ссылки), загружать соответствующий контент из хранилища и отображать контент внутри вашего основного макета.Я думаю, вы думали в этом направлении: просто убедитесь, что когда пользователь добавляет страницу, вы создаете для нее уникальный URL-адрес.Замените пробелы подчеркиванием, удалите специальные символы и т. д., чтобы создать безопасный ключ URL-адреса, который можно будет использовать для загрузки информации о странице при ее запросе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top