繁体   English   中英

在dll中集成ASP.NET MVC Razor Views

[英]Integrate ASP.NET MVC Razor Views inside dll

我有ASP.NET MVC 5.2.6项目,总之,当我要发布的网站,我没有要发布的视图作为松散*.cshtml的文件Views文件夹,我要整合一个DLL中查看。

我发现了这个问题 ,它是关于编译ASP.NET MVC Razor视图的,我应用了它并且对我有用,并且我能够编译ASP.NET MVC Razor视图,但是我无法摆脱它们,当我删除* .cshtml文件时,该网站不再工作,这意味着视图不在dll中。

这是删除Views文件夹时的错误

在此处输入图片说明

这显然是说他找不到视图。 我是否应该编写一些代码来操纵Razor搜索引擎以强制其在dll中查找?

在开发过程中,您添加到答案上的答案的链接就足够了,因此它可以帮助您检测所有编译错误,而不是在视图被即时编译的执行时发现。

在开发过程中很少将视图编译为DLL。 仅在发布应用程序时,才需要针对每个视图,每个文件夹,页面和控件将它们编译到一个DLL中。

因此,您的发布配置文件设置如下所示:

在此处输入图片说明

单击配置链接,然后您将看到以下对话框窗口:

在此处输入图片说明

在上方的winfow中,您可以选择所需的编译选项。

同样,在开发过程中无需将视图编译为DLL。 在此过程中,只需修改csproj就足够了。

这可能是您要寻找的: https : //github.com/RazorGenerator/RazorGenerator

这会将您的视图文件生成为单个dll。

尽管我可能不完全理解或不同意这种方法对您的解决方案的推理,因为这不一定能提供更好的安全机制,因为可以对dll进行反编译并删除源代码。 如果您在服务器内具有良好的安全性并遵循best practices ,则原始html文件可能更易于管理。

经过一番思考后,我什至可以尝试尝试的唯一方法就是在代码中动态生成cshtml文件。 但是我从来没有想过尝试过。

我认为真正的答案是改变安全策略,因为它不适合目标。 或使用ASP.NET MVC以外的工具。

毕竟,ASP.NET MVC毕竟只是将文件发送到已请求文件的客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM