VJA*_*JAI 19 asp.net-mvc razor
我想在多个ASP.NET MVC项目中共享布局(Header,Navigation和Footer Razor视图).我怎样才能做到这一点?
我可以创建一个自定义NuGet包来包装常见的Razor文件,图像和CSS吗?
jle*_*ach 18
我现在不止一次通过谷歌这样做了,虽然我提出了另一个解决方案(IMO,比使用预编译器和软件包更安全,更易于管理).
事实上,我已经无耻地从Erik Phillips那里逐字逐句地回答,所以请相信他.
他说的是什么......(他特别说这是针对javascript文件的,但这对任何其他类型都有效)源代码答案
这是我建议的:
右键单击解决方案并创建一个名为的新解决方案文件夹Common Javascript Files(或者您想要调用它的任何内容).


右键单击解决方案,单击Windows资源管理器中的打开文件夹,或手动导航其他版本的Visual Studio :(

在解决方案目录中,创建一个与解决方案文件夹同名的目录(解决方案文件夹通常不匹配源代码级别的目录,但这样做是为了理智).

在此新目录中,添加需要在解决方案之间共享的文件.

在Visual Studio中,单击解决方案文件夹,然后选择" 添加 - 现有项".

在文件选择对话框中,导航到上一个创建的目录,选择添加到目录中的文件,然后单击" 添加".


在每个需要共享文件的项目中,右键单击项目(或项目中的目录),然后单击" 添加 - 现有项".

导航到共享目录,选择文件并单击下拉箭头,然后单击添加为链接.

现在,项目中的文件基本上是对解决方案文件夹中文件的简短修改.但它们被视为项目中的实际文件(包括.CS或Visual Basic文件,它们将被编译为实际存在于项目中的文件).

PROS
缺点
AND - 从另一个答案中窃取整合信息,以下是如何将这些输出用于调试(取自下面的评论,删除的答案,链接到博客文章的构建目标,用于调试输出)
将其添加到每个消费项目的.csproj文件中:
<Target Name="CopyLinkedContentFiles" BeforeTargets="Build">
<Copy SourceFiles="%(Content.Identity)"
DestinationFiles="%(Content.Link)"
SkipUnchangedFiles='true'
OverwriteReadOnlyFiles='true'
Condition="'%(Content.Link)' != ''" />
</Target>
Run Code Online (Sandbox Code Playgroud)
Pau*_*lor 14
三种方法:
有关如何执行选项2的信息,请参阅将ASP.NET MVC Razor视图编译为单独的DLL.
有关选项3,请参阅创建和发布包.
事实上,我认为这是关于如何编译Razor视图的原始文章:使用RazorGenerator预编译MVC Razor视图
| 归档时间: |
|
| 查看次数: |
15112 次 |
| 最近记录: |