C# 如何在不同的项目中呈现公共视图(HTML和JavaScript)

C# 如何在不同的项目中呈现公共视图(HTML和JavaScript),c#,asp.net-mvc,model-view-controller,C#,Asp.net Mvc,Model View Controller,我们的项目作为单独的项目具有不同的用户界面(视图)。示例项目A将呈现视图A,项目B将呈现视图B。但这两个项目都有一个包含项目徽标和其他常见内容的公共标题视图(例如视图标题)。现在,如果我想在项目/视图A和B中呈现这个公共视图_头,我该怎么做。现在我正在使用嵌入式视图。在一个单独的项目中,我创建了公共头视图,创建了一个DLL,并将其包含在项目a和B中 还有其他优雅的解决方案吗?我可能听起来很愚蠢,但我是MVC新手,请容忍我 现在我正在使用嵌入式视图。在一个单独的项目中,我创建了公共头视图,创建了一

我们的项目作为单独的项目具有不同的用户界面(视图)。示例项目A将呈现视图A,项目B将呈现视图B。但这两个项目都有一个包含项目徽标和其他常见内容的公共标题视图(例如视图标题)。现在,如果我想在项目/视图A和B中呈现这个公共视图_头,我该怎么做。现在我正在使用嵌入式视图。在一个单独的项目中,我创建了公共头视图,创建了一个DLL,并将其包含在项目a和B中

还有其他优雅的解决方案吗?我可能听起来很愚蠢,但我是MVC新手,请容忍我

现在我正在使用嵌入式视图。在一个单独的项目中,我创建了公共头视图,创建了一个DLL,并将其包含在项目a和B中

如果使用,您已经选择了最好的解决方案之一。否则,您必须试一试。

它简单而强大。 为了开始使用它,你应该

  • 安装。从razor视图生成c#文件需要这个插件。为了强制生成,应选择自定义工具。

  • 添加到库项目(在包安装期间,将添加注册预编译MVCEngine的静态类
    RazorGeneratorMvcStart

  • 从任何MVC应用程序添加对库项目的引用,以便使用预编译视图

  • public static class RazorGeneratorMvcStart {
        public static void Start() {
            var engine = new PrecompiledMvcEngine(typeof(RazorGeneratorMvcStart).Assembly) {
                UsePhysicalViewsIfNewer = HttpContext.Current.Request.IsLocal
            };
    
            ViewEngines.Engines.Insert(0, engine);
    
            // StartPage lookups are done by WebPages. 
            VirtualPathFactoryManager.RegisterVirtualPathFactory(engine);
        }
    }