Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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 Mvc_Plugins_Partial Views_Asp.net Mvc Areas - Fatal编程技术网

C# 在不同的Mvc解决方案中使用相同的代码

C# 在不同的Mvc解决方案中使用相同的代码,c#,asp.net-mvc,plugins,partial-views,asp.net-mvc-areas,C#,Asp.net Mvc,Plugins,Partial Views,Asp.net Mvc Areas,我正在使用asp.NETMVC3和.NETFramework4.0与C# 假设我有NivoSlider(一个slider)html代码。它还有js、css和图像文件 我想将NivoSlider cshtml代码和js/css/images用作“一个项目”,并将其添加到不同的MVC解决方案中。它将如何成为一个插件 我不能让它成为一个局部视图,因为我必须将所有css、js和imges文件移动到新的解决方案中。我看了“mvc区域”,但它并没有呈现我的js和css文件(事实上,使用“区域”并不是一个完美

我正在使用asp.NETMVC3和.NETFramework4.0与C#

假设我有NivoSlider(一个slider)html代码。它还有js、css和图像文件

我想将NivoSlider cshtml代码和js/css/images用作“一个项目”,并将其添加到不同的MVC解决方案中。它将如何成为一个插件

我不能让它成为一个局部视图,因为我必须将所有css、js和imges文件移动到新的解决方案中。我看了“mvc区域”,但它并没有呈现我的js和css文件(事实上,使用“区域”并不是一个完美的方式,正如你所知)。。。我查阅了一些基于插件的架构,但没有一个是易于实现的。我的时间有限

那么我该如何解决这个问题呢


编辑:我可以使用它-但如果您有想法,我正在寻找其他解决方案…

您可以将这些文件包含在Web API项目中,并将它们提供给每个解决方案。每个解决方案都应该包括通过Web API接口使用这些文件的逻辑。

您可以创建一个专用的并为其创建一个小型安装。这样,您就可以直接从软件包中安装、更新和卸载


您甚至可以制作一个在计算机之间复制的本地化包。Nuget有一种非常简单的方法来指定要将文件提取到的位置以及要提取的文件。

我在一个商业项目中使用razor generator,它很实用,但并不理想

我考虑的其他可能性是添加文件作为链接(参见无名者的答案)

同时覆盖ViewEngine

甚至是符号链接(指向windows中文件夹的快捷链接)

如上所述,Razor视图可以作为编译类嵌入到程序集中(通过使用Razor生成器)。
静态资源(如.html、.js、.png)可以作为嵌入式资源位于汇编中,并由应用程序通过VirtualPathProvider(自定义或使用现有的类似资源)提供服务。

将asp.net mvc Razor视图编译成单独的dll

我希望能够在dll中嵌入已编译的Razor视图。这将允许轻松分发嵌入默认视图的asp.net mvc“模块”,但允许您将文件放置在“视图”文件夹中以覆盖这些默认视图


非常感谢您的回答。我相信WebApi并不是为此而构建的,要将我的观点存档还有很长的路要走。这是实现这一点的一种方法。非常感谢你。还有其他建议吗?任何人?+1,因为我们使用此方法并将常见的nuget项目保留在网络共享文件夹中。