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