UserControlのコードをデータベーステーブルに格納したり、動的にコンパイルしたり、そこからロードする方法はありますか?私はUserControlの完全なコードを含むデータベースから文字列を取得し、ページに追加することを意味ですか?Web UserControl ascxとコードをデータベースに保存してそこからロードできますか?
2
A
答えて
1
いくつかのアイデア:
(代わりに、コントロールの)ページ全体で
-
のHttpHandlerと一時ファイル
- 利用UserControl.LoadControl()と
- 使用UserControl.LoadControl()
- 使用BuildManager.CreateInstanceFromVirtualPath()オプション1:一時ファイル(最も簡単)
- Webアプリケーションが書き込むディレクトリを作成します。
~/tmp/
(およびWebアプリケーションがそのディレクトリに権限を作成 & を変更与える) 保存ユーザーコントロールの内容一時ファイルへ:
string userControlContents = /* get user control contents from database */; string path = Server.MapPath("~/tmp/2011081612332423.ascx"); System.IO.File.WriteAllText(path, userControlContents);
ユーザーコントロールをロードします。
Control c = UserControl.LoadControl("~/tmp/2011081612332423.ascx")
ユーザーコントロールを目的のページに追加します。
this.Controls.Add(c);
オプション2:のHttpHandler
- IDによってユーザーコントロールの内容を取得し、
Response
ストリーム- にデータベースからの生のコンテンツを出力するページまたはのHttpHandlerを実装これは、UserControl.LoadControl()がおそらくResponseストリームを気にしないので、で動作しない可能性があります。
その後オプション1のようにコントロールを読み込む:
Control c = UserControl.LoadControl("~/UserControlFromDB.ascx?id=392")
- ファイル名 "UserControlFromDB.ascx" は常に同じであるため、ASP.NETのJITキャッシングが(のみ
id=NNN
を壊すかもしれません変更)。 URLの書き換えはこれを回避することができます。
- ファイル名 "UserControlFromDB.ascx" は常に同じであるため、ASP.NETのJITキャッシングが(のみ
オプション3:ページをコンパイルするだけではなくコントロール:
BuildManager.CreateInstanceFromVirtualPath()
が仮想パスからASP.NETでPage
をコンパイルします。したがって、データベース全体にページを格納し、動的にコンパイルすることができます。
免責事項:私はコントロールまたはデータベース内のページを保存することはお勧めしません。保守、デバッグ、およびセキュリティコストが増加します。
- Webアプリケーションが書き込むディレクトリを作成します。
関連する問題
- 1. ASCX Webコントロールはデータベースに保存されていません
- 2. UserControl(ascx)でユーザーAutoCompleteExtenderを置き、そのコードビハインドにServiceMethodを配置します。
- 3. SQLサーバー2008データベースをASP.NET Webページに保存してロードする
- 4. データベースにXML構成ファイルをフィールドとして保存するか、そのパスを保存しますか?
- 5. NetbeansからDerbyデータベースを作成すると、そのデータベースはどこに保存されますか?
- 6. Open Web Analyticsでは、Webアプリケーション用にデータベースに保存されたデータからレポートを作成できますか?
- 7. アクションをデータベースに保存するか、コードから決定しますか?
- 8. Azureアカウントに新しいWebアプリケーションとデータベースをコードから作成することはできますか?
- 9. コントローラーにある「データベースに保存」というコードはどこに置くことができますか?
- 10. S3からモデルを保存してロード
- 11. どのようにしてdatagridviewからデータベースに保存できますか?
- 12. カスタムArraylistをSharedPreferencesに保存してそこから取得しますか?
- 13. クォーツcronjob設定をデータベース(mongoDB)に保存することはできますか?
- 14. Webサービス呼び出しからのデータをデータベースに保存
- 15. NSStringを使用してイメージを保存/ロードできますか?
- 16. アンドロイド、データベースなしでWebサーバーにデータを保存していますか?
- 17. テキストボックスの内容を取得し、そこから.txtファイルを作成してデータベースに保存します
- 18. 動的にasp.net Webサイトにユーザーコントロール(ascx)をロードします。
- 19. サーバにsqliteデータベースをアンドロイドで保存することはできますか?
- 20. SQLiteを使用してWebサーバーからJSON値をデータベースに保存する
- 21. matlabにASCIIファイルをロードし、それらを.matとして保存する
- 22. Elmah.Mvcエラーログはどこに保存されていますか?どのようにしてそれらを空白のSQLデータベースに格納できますか?
- 23. WindowsとOS XでSQLiteデータベースをどこに保存できますか?
- 24. どこの(私の)SQLデータベースがWebサーバーに保存されていますか?
- 25. ディスクからsqlite3データベースを取得し、メモリにロードしてディスクに保存しますか?
- 26. データベースを保存していますか?
- 27. C#コードを使用してascxコンポーネントをロードする
- 28. html/erbコードをデータベースに保存しますか?
- 29. RAMにデータベースをロードすることはできますか?
- 30. Webアプリケーション(asp.net MVC)からWord文書をロード/保存する
私の脳は溶けています:) –
@pstなぜですか?私は現在Sharepointで作業しており、データベースからすべてのコードも取得します。だから何とかできなければならない。 – teenup
データベースからユーザーコントロールをロードします...?私は彼らがControlTemplatesにいると確信していました... –