我正在使用asp.net mvc 3和.net framework 4.0与C#
假设我有NivoSlider(滑块)html代码。它还有js,css和图像文件。
我想将NivoSlider cshtml代码和js / css / images用作“项目”,我想将其添加到不同的MVC解决方案中。它将成为一个插件。
我无法将其视为部分视图,因为我必须将所有css,js和imges文件移动到新的解决方案中。我看了“mvc区域”,但它没有渲染我的js和css文件(事实上;使用“区域”并不是一个完美的方式,因为你知道)...我查找了一些基于插件的架构,但没有 - 他们很容易实现。我的时间有限。
那么我该如何解决这个问题呢?
编辑:我可以使用此http://razorgenerator.codeplex.com/ - 但如果您想出一个想法,我正在寻找其他解决方案......
答案 0 :(得分:15)
您可以创建一个私有Nuget并为其创建一个小型安装。这样您就可以直接从包安装,更新和卸载。
您甚至可以制作在计算机之间复制的本地化包。 Nuget有一种非常简单的方法来指定要将文件提取到的位置,以及要提取的文件。
答案 1 :(得分:1)
我在商业项目中使用剃须刀发生器,它功能齐全但不理想。
我考虑的其他可能性是添加文件作为链接(参见无名者的回答)
还会覆盖ViewEngine Can I specify a custom location to "search for views" in ASP.NET MVC?
甚至是符号链接(Windows中文件夹的快捷链接) https://superuser.com/questions/234422/does-windows7-support-symbolic-links-folder-shortcuts
答案 2 :(得分:1)
如上所述,Razor视图可以作为编译类嵌入到程序集中(通过使用Razor Generator)。 静态资源如.html,.js,.png可以作为嵌入式资源在汇编中找到,并由应用程序通过VirtualPathProvider提供服务(自定义或使用现有的https://github.com/mcintyre321/EmbeddedResourceVirtualPathProvider)
答案 3 :(得分:0)
您可以将这些文件包含在Web API项目中,并将它们提供给每个解决方案。每个解决方案都应包含通过Web API接口使用这些文件的逻辑。
答案 4 :(得分:0)
将您的asp.net mvc Razor视图编译为单独的dll
我希望能够在dll中嵌入已编译的Razor视图。这样可以轻松分发嵌入了默认视图的asp.net mvc“模块”,但允许您将文件放在“views”文件夹中以覆盖这些默认视图。
http://www.chrisvandesteeg.nl/2010/11/22/embedding-pre-compiled-razor-views-in-your-dll/