如何动态地从数据库加载的aspx代码?
-
23-09-2019 - |
题
我有这样存储在数据库中的内容
<p>This a sample text. <%= Html.ActionLink("test", "myaction", "mycontroller") %></p>
内容是我的数据存储库,这是我要保持它的数据库里面的原因的一部分。 我想知道它是如何可能,以使其在编译时执行它。
我使用它在一个asp.net MVC项目。
感谢您。
解决方案
可以使用从VirtualPathProvider
框架2.0开始,我相信。
您可以建立一个新的类,它的ASP.Net运行时将用于几乎所有的请求查询。这将是重要的是保持这个类紧,如果你说你会从数据库中拉,我肯定会推荐实现您的系统在本地加载这些文件至网络服务器,而不是打数据库为每一个请求。此外,当你从数据库中提取该文件,运行时可以决定编译它......你也不想这样的事情发生的每一个要求。
但是,为了回答你原来的问题,它是一个VirtualPathProvider
,你要寻找的。也可以使用这对从组件资源拉如果需要的话。
其他提示
这听起来像你有一个行作为字符串存储在一个位置的表在数据库中标记和源代码?
你考虑移动该数据/代码/数值到的的web.config 强>代替?
考虑在web.config中存储环境的配置设置。即。
<appSettings>
<add Name="IsProduction" value="true" />
<add Name="RequiresSecure" value="true" />
您控制器和模型可以读取这些值,并且沿着该视图通过环境设置。
当你写出来的常见问题条目,可以修改输出用一个简单的if
。
<% if (Model.IsProduction) //have your ViewModel pass along whether you're in Production mode, Dev mode, URLs to have SSL, or whatever criteria you like, etc.
{%>
<!-- my production markup, with image URL, SSL'd etc. -->
<img src="https://mysite.com/img.png" />
<%}
else {%>
<!-- my other Dev markup, with image URL, etc. -->
<img src="https://myDevServer/img.png" />
<%} %>
这通常被认为是不好的做法,甚至是配音开球-EFF,保持代码数据库。考虑“在数据库中保留的数据”的规则。
不隶属于 StackOverflow