.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.

Любой совет приветствуется, спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос