.NET MVC: как реализовать различный внешний вид страницы для пользователя?
У меня заканчиваются идеи здесь. Может быть, вы можете посоветовать мне, какой шаблон или метод (ы) использовать.
Пользователь должен иметь возможность войти и изменитьтолько внешний вид для его / ее профиля. Разница (AFAIK) с персонализацией заключается в том, что персонализированный макет виден только для редактора (самого себя). Разница между скинами, я полагаю, заключается в том, что скины предопределены, но пользователи должны иметь возможность изменять настройки самостоятельно.
Мне нужно иметь возможность отображать настроенный макет всем, кто посещает страницу автора.
Хорошим решением было бы сохранить информацию о макете в таблице БД. Также это должно быть кэшировано, я думаю, чтобы снять нагрузку с БД и использовать в CSS.
Спасибо
Редактировать:
Хорошо, я провел некоторые исследования сейчас. Придумали такую идею.
В представлении получите userId (тип Guid) из БД и установите для него ViewData: ViewData ["Идентификатор пользователя"] = profile.userId;
Это представление использует следующую мастер-страницу под названием «Profile.Master» и ссылки на динамический файл CSS:
В ProfileController получите данные CSS из БД и верните их в динамическое представление CSS:
public ActionResult Style(Guid userId)
{
var styles = (from s in Db.UserStyleSet.OfType()
where s.aspnet_Users.UserId == userId
select s);
return View("Style", styles);
}
Проблема в том, что UserId никогда не передается в динамическую ссылку CSS:
Словарь параметров содержит пустую запись для параметра 'Идентификатор пользователя' не обнуляемого типаSystem.Guid» для метода "System.Web.Mvc.ActionResult Style (System.Guid) ' в 'Project.Controllers.ProfileController.
Любой совет приветствуется, спасибо.