0

これを備えた他のモジュールがあるので、これを行うことができることは知っていますが、私はそれを機能させていません。

DotNetNukeサイト用のカスタムモジュールを作成しました。モジュール内にクラスオブジェクトを作成して、そのオブジェクトに関する情報を保持できるようにしたいと思います。オブジェクトを作成でき、すべてが準拠しています。しかし、コードビハインドでオブジェクトを使用すると、オブジェクトが定義されていないと表示されます。ここからどこへ行けばいいのかよくわかりません。

これはView.ascx.vbの始まりです:

Namespace Modules.VacationForms

Public MustInherit Class View
    Inherits PortalModuleBase

これは、オブジェクトクラスの始まりです。

Namespace Modules.VacationForms

Public MustInherit Class Vacation

なぜこれが機能しないのかよくわかりません。比較するために別のモジュールコードをダウンロードしましたが、私が知る限り、すべてが同じです。どんな助けでも大歓迎です。

4

2 に答える 2

2

WebサイトプロジェクトまたはWebアプリケーションプロジェクトを使用していますか?Webアプリケーションプロジェクトでは、すべてのコードを一緒にコンパイルできます(ここでの唯一の問題は、プロジェクトのルート名前空間設定である可能性がありますが、両方のクラスが同じプロジェクトにあると仮定すると、そうではありません)。Webサイトプロジェクトに参加している場合(たとえば、DNNソリューションで直接開発している場合)、コードは従来の意味でコンパイルされませんが、DNNによってオンデマンドでコンパイルされます。これは、要求されたコントロール/ページ(View.ascx.vbなど)に関連付けられたコードビハインドファイルと、App_Codeフォルダー内のコードファイルに対してのみ行われます。あなたのハングアップは、VacationクラスのコードファイルがApp_Codeフォルダーにないことだと思います。

于 2011-03-21T20:40:57.000 に答える
0

モジュール開発にWebアプリケーションプロジェクトを使用していないようです。最も簡単な方法は、モジュール開発テンプレートをインストールすることです(dotnetnuke.codeplex.comからdnnバージョンのスターターキットパッケージをダウンロードします)。

モジュールが単純すぎてそれを実行したくない場合、またはPCにテンプレートをインストールしたくない場合は、次のように実行できます。

  • デフォルトでWAPを使用していないvsバージョンを使用している場合は、Webからインストールを取得してください。
  • ルートのDesktopModulesディレクトリにdnnモジュール用の新しいフォルダを作成します
  • そのフォルダに新しいWAPプロジェクトを追加します。
  • そのフォルダーからweb.configを削除し、プロパティに移動して、ビルド出力ディレクターをdnnサイトのbinディレクトリにポイントします(../../binはほとんどの場合機能します)
  • それが完了すると、すべてのコードが期待どおりに機能し始めます。
  • これの良いところは、すべての.vbファイルと.ascx.vbファイルが単一のdllにコンパイルされ、パッケージとして簡単に配布できることです。

お役に立てれば

于 2011-03-22T07:33:46.577 に答える