どのように動的にデータベースからのaspxコードをロードするには?
-
23-09-2019 - |
質問
私は、データベースに格納されている。このようなコンテンツを持っている。
<p>This a sample text. <%= Html.ActionLink("test", "myaction", "mycontroller") %></p>
コンテンツは、私はデータベース内でそれを維持したい理由は、私のデータリポジトリの一部です。 私はそれをレンダリングし、コンパイル時にそれを実行することができる方法を知っていると思います。
私はasp.netのMVCプロジェクトでそれを使用しています。
ありがとうございます。
解決
あなたはフレームワーク2.0から始まるVirtualPathProvider
を使用することができ、私は信じています。
あなたはASP.Netランタイムがちょうど約すべてのリクエストを照会した新しいクラスを構築することができます。このクラスタイトを保つことが重要になるだろう、とあなたは、データベースから引っ張っされますと言うならば、私は間違いなく、Webサーバー上にローカルでこれらのファイルをロードするために、あなたのシステムを導入することはお勧めして、リクエストごとにデータベースをヒットしないでしょう。あなたは、データベースからそのファイルを引っ張ったときに加えて、実行時には、それをコンパイルするように決定することができる...と、すべての要求のために発生することを、あなたもいけないしたい。
しかし、あなたが探していることをあなたの元の質問、そのA VirtualPathProvider
にお答えします。所望であれば、あなたはまた、アセンブリのリソースから引っ張ってこれを使用することができます。
他のヒント
ですね?
あなたの代わりにのweb.configファイルのにそのデータ/コード/値を移動すると考えられていますか?
web.configファイルで、ご使用の環境のコンフィグ設定を保存することを検討してください。すなわちます。
<appSettings>
<add Name="IsProduction" value="true" />
<add Name="RequiresSecure" value="true" />
あなたのコントローラとモデルは、これらの値を読み、ビューに沿って環境設定を渡すことができます。
あなたがそれらのFAQエントリ出ている書き込み、あなたは簡単な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と考えられます。 「データベースのキープデータ」のルールを考えてみます。