MVC 5按用户设置更改布局

时间:2015-03-23 03:11:35

标签: templates asp.net-mvc-5

我需要建议如何实施我想要做的事情。基本上我需要的是一种根据登录用户的设置切换网站主题的方法。

例如,我们假设有一个销售小组。销售组用户拥有自己的个人登录信息。网站管理员将使用显示的可用布局列表(作为图像)来选择页眉,页脚和页面内容对于销售组用户的外观。因此,当销售用户登录时,他们会看到他们的网站带有选定的页眉,页脚和内容布局。

这是为了处理某些群体需要更多信息而某些群体需要花哨的设计而不是信息的情况。内容将或多或少相同,所以我想为所有用户使用相同的控制器'观点。但它所代表的方式看起来会有所不同。一组将拥有突出重要数据的大图像和大文本,而另一组将拥有比图像更多的信息。如何显示它将由后端的管理员选择。

有人对如何实现这一点有任何建议吗?是否有主题技巧或其他方式可以做到这一点?

我很感激以这种方式实施网站的任何想法。

1 个答案:

答案 0 :(得分:1)

我认为有两种方法可以实现这一目标......或者在控制器中,或者在视图中......

在控制器中(您可以决定要返回哪个用户的布局:

return View("Details", "_Layout", model);

在视图中(决定用户可以拥有哪种布局):

@{
   if (User == "Admin")
   {
      Layout = "~/Views/Shared/_AdminLayout.cshtml";
   }
   else
   {
      Layout = "~/Views/Shared/_Layout.cshtml";
   }
}

修改: 内部视图方法(查看模型,额外信息):

public class LayoutViewModel
{
    public LayoutViewModel() {}

    public LayoutViewModel(string layout) {
        Layout = layout;
    }

    public string Layout { get; set; }
}

public class CustomViewModel : LayoutViewModel
{
}