グリーム、
ベースコントローラーで次のようなことを試すことができます(これはaspxプロジェクトから取得されますが、かみそり用に調整できるはずです):
protected override ViewResult View(string viewName, string masterName,
object model)
{
// we share some views that aren't partialviews
// therefore, we have to ensure that the Shareholder view
// is ALWAYS attached to the logged in user if they aren't an admin user
bool userIsAdmin = IsAuthorised(new[] { "Admin" });
if (!userIsAdmin && !string.IsNullOrEmpty(
ControllerContext.HttpContext.User.Identity.Name))
{
masterName = "Shareholder";
}
return base.View(viewName, masterName, model);
}
この例では、最初に定義されたマスター テンプレート名 (Site.Master) の値は、ユーザーが管理者ユーザーでない場合、'Shareholder' (Shareholder.Master) に変更されます。