Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC中每个组织单独风格的最佳方法?_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# MVC中每个组织单独风格的最佳方法?

C# MVC中每个组织单独风格的最佳方法?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在尝试构建一个支持多个组织的web应用程序。为了保持简单(因为我对MVC没有太多经验),我设置了自定义路由,如site.com/organization1,site.com/organization2等 每个组织都必须能够在其页面上选择自己的颜色、字体和图像。每个组织的页面结构和应用程序的内部工作方式都是相同的 编辑:组织必须能够动态创建页面并设置页面样式。在此过程中不应涉及任何开发人员 我不确定什么是分离不同布局的最佳方法。有人有什么建议吗 提前感谢试试这个: 在视图/共享文件夹中为每个组

我正在尝试构建一个支持多个组织的web应用程序。为了保持简单(因为我对MVC没有太多经验),我设置了自定义路由,如
site.com/organization1
site.com/organization2

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

编辑:组织必须能够动态创建页面并设置页面样式。在此过程中不应涉及任何开发人员

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

提前感谢

试试这个:

  • 视图/共享
    文件夹中为每个组织提供单独的布局,具有特定样式,如
    organization1\u layout.cshtl、org2\u layout.cshtml
  • 2.在
    \u 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";
    }       
    }
    

    我会将组织模式(颜色、图像等)保存到数据库中,然后创建一个布局(母版)页面,使用提供的组织模型中的布局(母版)页面;然后将组织存储在会话和/或viewdata或model中(取决于用户数量和视图数量),然后使用从组织架构中检索到的db片段呈现布局。如果目标是仅分离布局,Mvc有layout.cshtml文件,因此您可以创建Organization1Layout.cshtml和organization2.cshtml…@zaitsman我想我会选择您的解决方案。有类似的想法,但不确定如何设计页面样式并发送一个模型。比如说,给ViewBag一个背景颜色值,给模型(数据)作为视图的参数,对吗?@Sn0wBlind类似的东西。根据复杂性,您可能只希望存储id或其他内容,然后在布局页面中从httpcontext缓存中检索模型,然后在应用程序启动时以及组织样式更改时重新填充缓存。谢谢您的回答,但这不意味着每次组织想要“加入”时,开发人员必须创建一个新的.cshtml文件吗?