ここでアイデアが不足しています。使用するパターンや方法を教えてください。
ユーザーはログインして、自分のプロファイルの外観のみを変更できる必要があります。パーソナライゼーションとの違い (AFAIK) は、パーソナライズされたレイアウトが編集者 (彼/彼女自身) にのみ表示されることです。スキニングとの違いは、スキンは事前定義されていますが、ユーザーは自分で設定を変更できる必要があることです。
著者のページにアクセスするすべての人に、カスタマイズされたレイアウトを表示できるようにする必要があります。
良い解決策は、レイアウト情報を DB テーブルに保持することです。また、DB から負荷を取り除き、CSS で使用するためにキャッシュする必要があります。
ありがとう
編集:
OK私は今いくつかの研究をしました。このような考えに至りました。
View で DB から userId (Guid タイプ) を取得し、それを ViewData に設定します。 ViewData["userId"] = profile.userId;
そのビューは、「Profile.Master」と呼ばれる次の MasterPage と動的 CSS ファイルへのリンクを使用します。
<link href="<%= Url.Action("Style", "Profile",
ViewData["userId"]) %>" rel="stylesheet" type="text/css" />
</head>
ProfileController で、DB から 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);
}
問題は、UserId が動的 CSS リンクに渡されないことです。
パラメーター ディクショナリには、'Project.Controllers.ProfileController' のメソッド 'System.Web.Mvc.ActionResult Style(System.Guid)' の null 非許容型 'System.Guid' のパラメーター 'userId' の null エントリが含まれています。
どんなアドバイスでも大歓迎です、ありがとう。