1

DNN 7 には、アイテムがカテゴリに属する​​データ構造を持つカスタム モジュールがあります (DNN 分類法ではなく、セクション名の単純なリストである「セクション」と呼ばれます)。モジュール編集画面は、ビュー コントロールで各カテゴリの編集リンクをクリックできるように機能します。これにより、カテゴリ編集画面がロードされます (カテゴリ ID を渡します)。これはうまく機能し、保存するとGlobals.NavigateURL()ビュー画面に戻ります。これはすべて意図したとおりに機能します。

各カテゴリ編集画面には、そのカテゴリ内のアイテムのリストもあり、それぞれに編集リンクがあります。編集リンクをクリックすると、アイテム編集画面が開き、正しいアイテム ID が渡され、そのアイテムを編集できるようになります。保存するまで、これはすべてうまく機能します。保存は正常に機能しますが、ユーザーをカテゴリの編集画面に戻したいときに機能しません。私が使用する場合:

Response.Redirect(EditUrl("SectionId", sectionid.ToString(), "EditSections"), true);

...何も起こりません。どこにもリダイレクトされません。これは、最初にカテゴリ編集ページにアクセスするために使用している URL とまったく同じです。

EditUrl("SectionId", Eval("SectionId").ToString(), "EditSections")

次に、同様の URL を使用してアイテム編集ページにアクセスします。

EditUrl("ItemId", Eval("ItemId").ToString(), "EditItems")

同じ URL を使用して、既に移動したのと同じページに移動しても何も起こらない理由がわかりません。今のところ、それらをビューに送信していますが、同じカテゴリに複数のアイテムを追加して、カテゴリに戻って別のアイテムを追加する必要がある場合は、ビューに送り返すだけです。

誰もこのようなものを見たことがありますか?

4

2 に答える 2

1

EditUrl の代わりに NavigateUrl のオーバーロードを使用しようとしましたか?

Globals.NavigateURL(TabId, "EditSections", "mid", ModuleId.ToString(), "SectionId", Eval("SectionId").ToString())
于 2013-03-04T20:46:53.227 に答える
0

私自身はそれを見たことがありませんが、何らかの理由でEditURLでコンテキストが失われ、そのために適切な場所に送信されていないと想定する必要があります。

2つのうちの1つ(または両方)を試してみることをお勧めします。

  1. EditURLが返すURLをデバッグし、違いを見つけることができるかどうかを確認します。
  2. すべてのリンクにNavigateURLを使用し、モジュールIDのMID = ##をクエリ文字列パラメーターとして渡して、適切な値が渡されていることを確認します。

更新:複数の編集ビューを作成し、それらの間を移動しようとしている場合は、編集コントロールに個別のモジュール定義を設定する代わりに、「ローダー」を使用することを検討してください。基本的に、単一のEdit.ascxファイルを定義し、その中に他のASCXファイルをロードして、パネルに挿入します。このモジュールhttp://dnnsimplearticle.codeplex.com/のViewコントロールはそれを行いますが、私はこれまで編集コントロールで試したことがありません。

于 2013-02-26T19:25:20.937 に答える