0

URl のように、静的 URL の代わりにタブ ID を使用してリンクにアクセスしたい

Response.Redirect("~/Activities/Calendar.aspx?date=" + DateTime.Now.ToString("MM/dd/yyyy"))

そして私は次のコードを使用します

Dim objModuleController As DotNetNuke.Entities.Modules.ModuleController
Dim objModuleInfo As DotNetNuke.Entities.Modules.ModuleInfo = objModuleController.GetModule(CInt(CType(Settings("DetailsCalendar"), Integer)))
Dim TabID As Integer = objModuleInfo.TabID

If CBool(CType(Settings("DetailsCalendar"), String)) Then
    Response.Redirect(NavigateURL(TabID, "date", DateTime.Now.ToString("MM/dd/yyyy")))
End If

しかし、それは私を間違ったURLにリダイレクトします

4

2 に答える 2

1

コントロールが "PortalModuleBase" を継承する場合、既に TabId が設定されています。

ただし、Navigate Url に関する問題の根本的な原因は、試みているオーバーロードの構造が次のようになっていることです。

NavigateUrl(int TabId, string contolKey, string[] params)

パラメータを追加するだけなので、値を渡す必要があります

あなたの例から、あなたはうまくいくはずです

NavigateUrl(TabId, string.Empty, "date", DateTime.Now.ToString("MM/dd/yyyy"))

ここで重要なのは、コントロール キーを渡さないことです。

于 2012-07-03T16:51:26.780 に答える
0

これはそれを機能させる正しいコードです:)

Dim objModuleController As New DotNetNuke.Entities.Modules.ModuleController
Dim objModuleInfo As DotNetNuke.Entities.Modules.ModuleInfo = objModuleController.GetModule(CInt(CType(Settings("DetailsCalendar"), Integer)))

If CBool(CType(Settings("DetailsCalendar"), String)) Then
IF (objModuleInfo.TabID <> 0 ) Then
Response.Redirect(NavigateURL(objModuleInfo.TabID, String.Empty ,"date="+ DateTime.Now.ToString("MM/dd/yyyy")))
End If
End If
于 2012-07-04T09:46:34.197 に答える