2015-04-05 71 views
1

我正在尝试构建一个支持多个组织的Web应用程序。为了保持简单(因为我没有很多MVC的经验),我设置了自定义路由,如site.com/organisation1,site.com/organisation2等。MVC中每个组织的独立样式的最佳方法是什么?

每个组织都必须能够选择自己的颜色,字体和图像在他们的页面上。每个组织的页面结构和应用程序的内部工作方式都是相同的。

编辑:组织必须能够即时创建和设置其页面。在这个过程中没有开发者应该参与。

我不确定什么是分开不同布局的最佳方法。有没有人有建议?

在此先感谢

+0

我愿意将组织模式(颜色,图像等)保存到数据库中,然后创建一个使用组织模型提供的布局(主)页面;然后将组织存储在会话和/或视图数据或模型中(取决于用户数量与视图数量),然后使用组织架构中从数据库检索到的数据块呈现布局。 – zaitsman 2015-04-05 09:43:29

+0

如果目标是分离布局,Mvc有layout.cshtml文件,所以你可以创建Organization1Layout.cshtml和organization2.cshtml ... – Bellash 2015-04-05 09:43:59

+0

@zaitsman我想我会用你的解决方案。有这样的想法,但不知道如何风格的页面,并发送一个模型完全。所以你说的是,例如给ViewBag一个背景颜色的值,并将模型(数据)作为参数提供给视图,对吧? – Sn0wBlind 2015-04-05 09:51:12

回答

0

试试这个:

  1. 有单独的布局与特定的样式,比如在Views/Shared文件夹organisation1_layout.cshtl, org2_layout.cshtml每个组织。

2.在_Layout.cshtml,确定组织使用URL /路由的细节和相应地设置布局。

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
    if (Request.Url.ToString().Contains("Organisation1") { 
    Layout = "~/Views/Shared/Org1.cshtml"; 
    } 
    else 
     { 
     Layout = "~/Views/Shared/Org2.cshtml"; 
}  
} 
+0

感谢您的回答,但这并不意味着每当组织想要“加入”时,开发人员都必须创建一个新的.cshtml文件? – Sn0wBlind 2015-04-05 09:56:24

相关问题