在Orchard自定义主题视图之间共享@functions

时间:2014-07-28 15:56:23

标签: function razor themes share orchardcms

我正在移植orchard中的现有网站,遗憾的是现有的css结构不是很好,我需要几个辅助函数来使网站正常工作。

目前我正在重新设置我正在定制的每个形状的备用.cshtml文件中的转换函数。

它始终是相同的功能,我想在某个位置移动它,使其可重复使用,更容易使用。

我还想让它特定于主题(在我正在创建的主题文件夹中)

功能非常简单

@functions{
string ConvertColorToStyle(string color){
    string menuStyle = "";
    switch(color)
    {
        case "Azure": menuStyle = "secondary_nav_area"; break;
        case "DarkGreen": menuStyle = "secondary_nav_areaDiscoServices"; break;
        case "LightGreen": menuStyle = "secondary_nav_areaPreClinAndClinical"; break;
        case "Violet": menuStyle = "secondary_nav_areaAPI"; break;
        case "LightViolet": menuStyle = "secondary_nav_areaSSC"; break;
        case "DarkAzure": menuStyle = "secondary_nav_areaPharma"; break;
        case "DeepAzure": menuStyle = "secondary_nav_areaIDFDaM"; break;
        case "DeepBlue": menuStyle = "secondary_nav_areaIDDS"; break;
        case "Orange": menuStyle = "secondary_nav_areaClinServices"; break;
        case "Cyan": menuStyle = "secondary_nav_areaConsulting"; break;
        case "Indigo": menuStyle = "secondary_nav_areaINDiGO"; break;
        case "LightAzure": menuStyle = "secondary_nav_areaPAC"; break;
        default: menuStyle = "secondary_nav_area";
        break;
    }
    return menuStyle;
}}

但是我希望通过将一个function.cshtml文件放在asp.net mvc项目的App_Code文件夹中来分享它,就像可以做的那样。

有没有办法在Orchard的主题中的所有视图中共享此功能?

1 个答案:

答案 0 :(得分:2)

当然:将一个项目文件添加到与主题同名的主题中,然后使用暴露该方法的静态类向其添加一个cs文件。然后,您就可以在视图中使用该功能。